从develop
分支创建一个feature
分支,
经历了若干个commit
之后,
我想知道这个分支从创建到现在都发生了哪些修改。
直接git diff develop
是不行的,
因为develop
可能在这段时间也增加了好多内容。
我不想看develop
上增加的内容,
只想看feature
分支上发生的修改。
难道要去记住创建feature
分支时的commit编号吗?
不! git提供了更简单的方法。
比如A
和B
是两个分支名,那么下面的命令
git diff A..B
可以用来比较两个分支的差异。
这里我们用2个点来分隔分支名。
如果你详细地看git diff的文档的话,
git help diff
你会发现一种3个点的用法:
git diff A...B
那么3个点是什么意思呢?
答:
它是用来比较A和B的公共祖先
与B
的差异。
它相当于下面的命令:
git diff $(git-merge-base A B) B
develop
分支和feature
的公共祖先,
事实上就是创建feature
分支时的commit。
所以我们可以通过下面的命令:
git diff develop...feature
来查看创建feature
分支以来的修改。
甚至地,
如果我们的当前分支就是feature
,
我们可以省略第二个分支名,
简写成:
git diff develop...