我有一个主分支和一个开发分支,我会定期将开发分支合并到主分支:
dev --A---B---C---D---E---F---G--
/ \ \
master ----------M1------M2----------
M1和M2是合并提交。
我该如何找到已经合并到主分支的最后一次开发分支上的提交的SHA?在这个例子中,我想要D提交的SHA。
git merge-base master 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)