4

如果我在同一个提交上完成了多次 git commit --amend ,有没有办法可以列出对给定提交的所有不同修改?

4

2 回答 2

6

其实方法是存在的。你可以使用命令git reflog

$ git reflog 
d7f7f15 HEAD@{0}: commit (amend): My second commit
f5d2ed5 HEAD@{1}: commit (amend): My second commit
7333d86 HEAD@{2}: commit: My second commit
addbfef HEAD@{3}: commit: This was my first commit

当我在 IDE Eclipse 中使用 pugin EGIT 时,我可以看到提交和修改的完整列表,以及它们之间的差异。我不知道如何通过命令行查看差异,如果有人知道该怎么做,请发布。

于 2014-06-08T04:13:10.197 回答
1

git commit --amend完全重写提交,创建一个新的提交对象并最终丢弃旧的。如果有对旧对象的引用,则保留它,因此您可以查找更改;但总的来说,情况可能并非如此。

所以简短的回答是:不。修改提交将重写原始提交,以明确没有分离的历史记录。如果你想识别不同的状态,你应该做出真正的提交。

如果您只是在(个人/私人)开发期间想要这个,您也可以进行正常提交,然后如果您想清理它,则稍后压缩提交以创建一个单独的提交。

于 2013-08-19T21:09:29.817 回答