繁体   English   中英

如何在Git存储库中找到所有具有多个父项的提交?

[英]How can I find all the commits that have more than one parent in a Git repository?

我正在研究开放源代码项目中的合并。

对于回购中的每个合并,我需要找到基础(最近的共同祖先),两个贡献者以及最终的合并提交。

我已经知道如何获取最近的公共祖先( git merge-base rev1 rev2 )和贡献者( git log --pretty=%P -n 1 <commit> ),但是我在确定提交内容时遇到了问题来自合并操作的结果。

如何在Git存储库中找到所有具有多个父项的提交?

这应该足够了(用于本地提交)

 git rev-list --merges

git rev-list手册页提到:

--merges

仅打印合并提交 这与--min-parents=2完全相同。

这意味着rev-list具有一些有趣的过滤器:

--min-parents=<number>
--max-parents=<number>

仅显示至少(或最多)许多提交的提交。
尤其是:

  • --max-parents=1--no-merges相同,
  • --min-parents=2--merges相同。
  • --max-parents=0给出了所有的根提交,并且
  • --min-parents=3所有章鱼合并

尝试:

git log --merges

使用适当的--pretty来解析输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM