获得与合并相关的所有提交的有效方法?

时间:2015-07-09 04:50:38

标签: git git-merge

假设我在下面的分支ABC之间有一个复杂的章鱼合并:

---1---o---A
    \ /
     X
    / \
---2---o---o---B
            \
             o---C

这类似于http://git-scm.com/docs/git-merge-base#_discussion

中描述的内容

我可以使用1

从git轻松获取2git merge-base --all --octopus A B C

我真正需要的是所有图片提交。

我可以通过以下方式手动执行此操作:

git log --pretty=format:%H A...1
git log --pretty=format:%H A...2
git log --pretty=format:%H B...1
git log --pretty=format:%H B...2
git log --pretty=format:%H C...1
git log --pretty=format:%H C...2

然后采用提交的集合联合,但这非常低效。

是否有更有效的方法来制作此列表?

1 个答案:

答案 0 :(得分:1)

--ancestry-path就是为了做到这一点:

git log --pretty=%H --ancestry-path A B C --not $(git merge-base --all --octopus A B C)
git merge-base --all --octopus A B C

(我希望日志有一个--inclusive选项,它包含所有明确标记的底部提交,直到那时必须使用单独的命令列出。)