6

假设以下 Git 历史:

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

执行git log master会按照ABCDEFGH的顺序给出日志条目。- 但我对只有大师的历史感兴趣(即ADEH

如何“摆脱”来自Branch1的不需要的日志条目?我为git log尝试了很多选项,但我找不到任何合适的...


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

查看git log master给出的日志历史,它显示了我的分支 master 是如何演变的(ABCDEFGH)。

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

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

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


结论:我想要的只是从HEADHEAD~n的git 日志条目(例如上面的 n = 1...3)。如何做到这一点?有可能吗?

4

1 回答 1

8

你正在寻找的是

git log --first-parent

为什么这个选项被称为--first-parent回答你的问题

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

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

于 2012-11-15T13:13:21.913 回答