为什么git认为HEAD是17年前的第一次提交?

时间:2017-01-17 03:43:52

标签: git commit

我试图收集[NOW, THEN]范围内的提交列表,其中NOWHEAD[THEN]8af39377,和它的约120次提交。

When I run

>  git log 8af39377289feba1876b3252b6d23 HEAD --oneline | cut -d " " -f 1 > commits.txt

然后查看commits.txt,其长度为2300行,并将顶部条目显示为8af39377THEN),将底部条目显示为a3b6ece(第一个从2002年开始)。

为什么Git认为HEAD是第一次提交到存储库?

2 个答案:

答案 0 :(得分:3)

你的语法错了。如果你想要8af39和HEAD之间的范围,那么你需要8af39..HEAD

至于为什么它在17年前显示,如果你只是指定一个修订版,它将找到该提交所有提交的提交。由于所有提交都有向后指针一直到根,所以你找到了root提交。

Revision Specification请参阅有关指定范围的部分。

答案 1 :(得分:1)

git log 8af39377289feba1876b3252b6d23 HEAD --oneline

那说"给我这两个提交的完整历史记录,按照由祖先约束的日期顺序排序"。

你想要

  

[NOW,THEN]范围内的提交列表,其中NOW是HEAD,[THEN]是8af39377,其约120提交前

但是您的日志输出与您相矛盾:git log首先显示其输出最近,受祖先约束,

  

它将顶部条目显示为8af39377。

因此您对提交订单有误。如果您没有对默认输出进行静音,它也会明确地向您显示提交日期,因此您可以查看它是日期还是祖先问题。

无论是哪种,

git log --oneline HEAD..8af39377

会显示清单。

可能值得添加--graph --decorate