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