查看 git 中文件的先前版本(压缩提交)
Viewing previous versions of a file in git (squashed commits)
我打算做的和上面写的类似here。我做了最上面的答案,但是,我意识到我已经压缩了我的提交。
这是我的提交历史:
Date: <date1>
commit 3
Date: <date2>
commit 2
commit 1
(我已将提交 1 压缩为提交 2。)
正如上面链接问题的最佳答案中所说,我做了 git show HEAD~2: file.x
但这显示了提交 1 之前的文件,而 git show HEAD~1: file.x
显示了提交 2 之后的文件。
如何在提交 1 之后和提交 2 之前查看文件?
如果压缩最近发生,您可以在相关分支的 the reflog 中检索原始提交 1 和 2。
git reflog
输出该形式的条目列表:
<commitHash> (optional decoration, as in, branches pointing here) <ref>: <operation>: <details>
你应该在最近的那些中找到你的 rebase 操作。在此之前创建一个临时分支:
git checkout -b temp HEAD@{n+1}
其中 n
是您发现的相应参考。
现在您可以自由地检查您在此临时分支上的 pre-squash 提交,并在完成后处理它。
(请注意,所有这些操作对您当前的分支没有影响,您可以在完成后处理新创建的分支)
我打算做的和上面写的类似here。我做了最上面的答案,但是,我意识到我已经压缩了我的提交。
这是我的提交历史:
Date: <date1>
commit 3
Date: <date2>
commit 2
commit 1
(我已将提交 1 压缩为提交 2。)
正如上面链接问题的最佳答案中所说,我做了 git show HEAD~2: file.x
但这显示了提交 1 之前的文件,而 git show HEAD~1: file.x
显示了提交 2 之后的文件。
如何在提交 1 之后和提交 2 之前查看文件?
如果压缩最近发生,您可以在相关分支的 the reflog 中检索原始提交 1 和 2。
git reflog
输出该形式的条目列表:
<commitHash> (optional decoration, as in, branches pointing here) <ref>: <operation>: <details>
你应该在最近的那些中找到你的 rebase 操作。在此之前创建一个临时分支:
git checkout -b temp HEAD@{n+1}
其中 n
是您发现的相应参考。
现在您可以自由地检查您在此临时分支上的 pre-squash 提交,并在完成后处理它。
(请注意,所有这些操作对您当前的分支没有影响,您可以在完成后处理新创建的分支)