Git:查找合并到分支的最后一个SHA

3

我有一个主分支和一个开发分支,我会定期将开发分支合并到主分支:

dev      --A---B---C---D---E---F---G--
        /       \       \
master ----------M1------M2----------

M1和M2是合并提交。

我该如何找到已经合并到主分支的最后一次开发分支上的提交的SHA?在这个例子中,我想要D提交的SHA。

2个回答

4
那将是最近的共同祖先,或者合并基础。
git merge-base master dev

2
如果你从未合并到dev分支,使用git merge-base命令就可以了。如果你还要从master分支合并,你需要检查master分支的第一个父提交历史,找到最近的合并提交,其第二个父提交在dev分支的第一个父提交历史中。
暴力解决方法:
awk '   ARGIND==1 { tomaster[$NF]=1; next }
        $1 in tomaster { print; exit }
' <(git rev-list --first-parent --merges --parents master) \
  <(git rev-list --first-parent dev)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接