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

  • 本文关键字:父节点 提交 Git 存储 git
  • 更新时间 :
  • 英文 :


我正在做一项研究,研究开源项目中的合并。

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

我已经知道如何获得最近的共同祖先(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>

只显示至少(或最多)有100次提交的提交。
特别是:

  • --max-parents=1--no-merges相同,
  • --min-parents=2--merges相同。
  • --max-parents=0给出所有根提交
  • --min-parents=3 all octopus merged .

尝试:

git log --merges
使用适当的--pretty来解析输出

最新更新