我正在开展一项研究,研究开源项目中的 merge 。
对于存储库中的每次 merge ,我需要找到基础(最近的共同祖先)、两个贡献者以及生成的 merge 提交。
我已经知道如何获取最近的共同祖先 ( git merge-base rev1 rev2
) 和贡献者 ( git log --pretty=%P -n 1 <commit>
),但我在识别 merge 操作产生的提交时遇到问题。
如何在 Git 存储库中找到具有多个父级的所有提交?
最佳答案
这应该足够了(对于本地提交)
git rev-list --merges
--merges
Print only merge commits. This is exactly the same as
--min-parents=2
.
这意味着 rev-list 有一些有趣的过滤器:
--min-parents=<number>
--max-parents=<number>
Show only commits which have at least (or at most) that many commits.
In particular:
--max-parents=1
is the same as--no-merges
,--min-parents=2
is the same as--merges
.--max-parents=0
gives all root commits and--min-parents=3
all octopus merges.
关于git - 如何在 Git 存储库中找到具有多个父级的所有提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637494/