从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...