我经常遇到这样的情况,想要查看一个分支自从分离后引入的所有更改的差异。原始的方式
$ git diff ..branch
不太好用,因为它还会考虑 master
中的更改。我要找的基本上是一种更好的运行方式。
$ git diff $(git merge-base master branch)..branch
或者用图形表达:
---A---B---C---D---E <== master
\
F---G---H <== branch
我应该如何优雅地查找B
和H
之间的差异?
编辑:正如我在下面的回答中所指出的,master...branch
是解决我的问题的一种方式。但是,鉴于引用的man页面片段,我仍然不知道为什么会这样。
为什么diff master...branch
只显示自合并基以来的差异,而man rev-parse
说它也应该包括master
的提交?
为什么diff master..branch
显示master
的当前状态与branch
之间的差异,而man rev-parse
说它应该忽略master
独有的提交?