我正在研究开源项目中的合并。
对于repo中的每个合并,我需要找到基数(最近的共同祖先),两个贡献者,以及由此产生的合并提交。
我已经知道如何获取最近的共同祖先(git merge-base rev1 rev2
)和贡献者(git log --pretty=%P -n 1 <commit>
),但我在识别合并操作产生的提交时遇到问题。 / p>
如何在Git存储库中找到所有具有多个父级的提交?
答案 0 :(得分:1)
这应该足够了(对于本地提交)
git rev-list --merges
--merges
仅打印合并提交。这与
--min-parents=2
完全相同。
这意味着rev-list有一些有趣的过滤器:
--min-parents=<number>
--max-parents=<number>
仅显示至少(或最多)多次提交的提交 特别是:
- 相同
--max-parents=1
与--no-merges
,--min-parents=2
与--merges
相同。--max-parents=0
提供所有 root提交和--min-parents=3
所有章鱼合并。
答案 1 :(得分:1)
尝试:
git log --merges
使用适当的--pretty
来解析输出。