如何仅获取特定分支的Git日志?

时间:2012-11-15 13:02:05

标签: git branch git-branch git-checkout git-log

假设以下Git历史记录:

Branch1     B---C-------F---G
           /     \           \
Master    A-------D---E-------H

执行 git log master 按以下顺序给出日志条目 ABCDEFGH。 - 但我对仅限master的历史感兴趣(即 ADEH < /强>)

如何从 Branch1 中“清除”不需要的日志条目?我为 git log 尝试了很多选项,但我找不到合适的东西......


这导致了我在这方面不理解的另一件事:

查看 git log master 给出的日志历史记录,它显示了我的分支主文件是如何演变的( A-B-C-D-E-F-G-H )。

但是做一个 git checkout HEAD~1 (假设master = HEAD)给我 E (Evolution HEAD~3 A - HEAD~2 D - HEAD~1 E - HEAD H - &gt; ADEH

这是我不明白的: H 的祖先 git log G ,而的祖先是 > H 查看 git checkout E

我不明白这一点 - H 的祖先是什么: G E ?...


结论:我想要的是从 HEAD HEAD~n git log 条目(例如,在n = 1 ... 3之上)。 怎么能实现这一目标?它有可能吗?

1 个答案:

答案 0 :(得分:7)

您正在寻找的是

git log --first-parent

为什么调用此选项--first-parent会回答您的问题

  

我不明白这一点 - H:G或E的祖先是什么?

答案是:两者。 E是第一个父,但G是第二个父,因为H是合并提交。合并提交是具有多个父级的提交。