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

hop*_*sch 6 git branch git-checkout git-log git-branch

假设以下Git历史记录:

Branch1     B---C-------F---G
           /     \           \
Master    A-------D---E-------H
Run Code Online (Sandbox Code Playgroud)

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

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


这导致在这种情况下我不理解的另一件事:

查看git log master给出的日志历史,它显示了我的分支主机如何进化(ABCDEFGH).

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

这是我不明白:始祖^ h看着git的日志,而祖先^ h看着git的结帐Ë.

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


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

Tom*_*ing 8

你在寻找什么

git log --first-parent
Run Code Online (Sandbox Code Playgroud)

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

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

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