如何让git diff只显示两次提交之间的差异,而不包括中间的其他提交?


当前回答

那么这个呢:

git diff abcdef 123456 | less

如果你想要在运行中比较许多不同的差异,将它管道到less是很方便的。

其他回答

你可以简单地将2个提交传递给git diff,就像这样:

-> git diff 0da94be  59ff30c > my.patch
-> git apply my.patch

检查完整的更改:

  git diff <commit_Id_1> <commit_Id_2>

仅检查更改/添加/删除的文件:

  git diff <commit_Id_1> <commit_Id_2> --name-only

注意:对于检查中间没有提交的diff,你不需要输入提交id。

为了比较12345和abcdef作为补丁的两个git提交,可以使用diff命令作为

diff <(git show 123456) <(git show abcdef)

我的别名设置在~/。git的Bashrc文件:

alias gdca='git diff --cached' # diff between your staged file and the last commit
alias gdcc='git diff HEAD{,^}' # diff between your latest two commits

让我来介绍一个简单的GUI/傻瓜证明方法,你可以在这些情况下采取。

克隆另一个副本到新文件夹,例如myRepo_temp 签出您想要与原始回购(myRepo_original)中的提交进行比较的提交/分支。 现在你可以使用不同的工具,(如超越比较等)与这两个文件夹(myRepo_temp和myRepo_original)

这是有用的,例如,如果你想部分逆转一些更改,因为你可以复制东西从一个文件夹到另一个文件夹。