这里要记住的关键点是,如果两个分支都共享提交X,那么这不会对diff增加任何内容,也就是说,您在diff *中看不到有关提交X的任何信息。
因此,您只需要与分支点(可以通过merge-base找到)进行比较,并与之进行比较:
git diff $(git merge-base current master)
返回c,d和e。
如果故事是针对那些看似更复杂(有几次合并)的故事的,那么这也适用:
. --a--> . --b--> . --- . (master) / c (merge) / (merge) / . ----- . ----- . --d--> . (current) --e--> (working tree)
返回d和e。
*这就是为什么你没有看到a在git diff master。



