1

我正在尝试确定将 master 合并到特定发布分支的频率。所以,我想知道所有合并基地的历史。有没有办法列出两个分支之间发生的所有合并?

4

1 回答 1

1

您可以告诉 git log 为每个显示的提交输出父提交的提交哈希:

git log --format="%p" --first-parent --merges release

# to get only second parents, just use awk or cut :
git log --format="%p" --first-parent --merges release | awk '{ print $2 }'

您现在可以一一检查每个提交是否是分支的一部分master,也许使用:

git rev-list --first-parent master | grep $sha

(“一个分支的第一任父母”是最接近该分支历史的东西)


使用一个衬垫:

git rev-list --format="%P" --first-parent --merges release | awk '{ print $2 }' |\
    grep -F -f <(git rev-list --first-parent master)

或在您的评论中调整您对“uniq”的使用:

(git rev-list --format="%P" --first-parent --merges release | awk '{ print $2 }';\
  git rev-list --first-parent master) | sort | uniq -d
于 2021-12-22T14:06:27.420 回答