微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“git log --first-parent” 不排除任何初始提交

如何解决“git log --first-parent” 不排除任何初始提交

我有一个像这样的提交图,其中 AG 是初始提交(没有父提交),而 BD 是合并提交(带有 {{ 1}} 和 A 作为他们的第一任父母):

C

我想让 F / \ / \ A--B--C--D--HEAD / G--E 给我看:

git log --graph

A--B--C--D--HEAD / G--E 给出:

git log --graph --first-parent

但我想包括 A--B--C--D--HEAD G,因为 E 没有父母。因此,当它遇到合并提交 G 时,我希望 B 也跟随第二个父级 (git log --first-parent),因为它允许它到达初始提交 E。>

我正在寻找的逻辑是“G,但前提是所有从合并提交可访问的初始提交都可从其第一个父级访问”。

有没有办法用 --first-parentgit log 来实现这一点?

解决方法

我看不到使用 git loggit rev-list 的内置选项来实现您想要的目标的方法。

在您的图表中,EB 的第二个父项,因此它被 --first-parent 排除。


我能想到的最接近的是用两个命令来做:

(git log --graph --first-parent B..HEAD; git log --graph B) | less

BC 之间的连接不会在输出中绘制,但这应该会为您提供正确的提交列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。