如何在两个分支之间找到上一个合并提交?
我想查看自上次将发布分支合并到主分支以来,我的主分支中的更改。要查看自上次合并以来发布分支中的更改,只需使用“git diff ...release”即可。
但是显然,“git diff release...”不起作用,因为它还包括上次合并之前的所有更改。因此,我认为我需要上一个合并的提交ID来将其传递给“git diff”。
我想查看自上次将发布分支合并到主分支以来,我的主分支中的更改。要查看自上次合并以来发布分支中的更改,只需使用“git diff ...release”即可。
但是显然,“git diff release...”不起作用,因为它还包括上次合并之前的所有更改。因此,我认为我需要上一个合并的提交ID来将其传递给“git diff”。
git log --reverse --ancestry-path `git merge-base HEAD release`.. \
--format=format:%H|head -n1
这个看起来可以与git diff $(...)
一起使用,但它似乎非常复杂。是否有更简单的解决方案?
示例
I
/ \
A1 B1
\ |
| M
| |
A2 B2
这里的 I
是初始提交。 A[12]
是发布提交,B[12]
是主提交。 M
是先前提交。在这个例子中,最后合并和主分支之间的更改仅为由B2引入的更改。 git merge-base A2 B2
返回A
1。 而git diff B2 A1
包括B1
的更改。因此,问题是如何在一般更复杂的情况下找到M,以便可以运行git diff M B2
而不必手动查找M
。
git log --graph --oneline
来找到提交。 - Shahbaz