假设我在下面的分支A
,B
和C
之间有一个复杂的章鱼合并:
---1---o---A
\ /
X
/ \
---2---o---o---B
\
o---C
这类似于http://git-scm.com/docs/git-merge-base#_discussion
中描述的内容我可以使用1
2
和git 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
然后采用提交的集合联合,但这非常低效。
是否有更有效的方法来制作此列表?
答案 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
选项,它包含所有明确标记的底部提交,直到那时必须使用单独的命令列出。)