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