git log-因为排除了第一次提交

时间:2020-07-19 16:42:27

标签: git git-log

假设一个git repo有12次提交并且在昨天中创建了4次(例如, 2199年12月31日)。

git log --oneline将输出:

9675a65 fix: a bug in feature B
041e1b2 feat: add feature B
d0f58e3 refactor: apply DPs to feature A
e933840 feat: add feature A
a6a235d chore: update version
...

f982bfd chore: initial commit

预期行为

根据我的理解,如果我今天运行git log --since=1.day(2200年1月1日,),我应该得到一个输出,其中包括昨天的最后4次提交(在示例中:from 壮举:将功能A 添加到修复:功能B中的错误)。

实际行为

但是,相反,我只得到了最后3次提交(从重构:将DP应用于功能A fix:功能B 中的错误)。 git log --since=1.day的输出中未包含昨天创建的第一次提交(功能:添加功能A )。

我在这里想念东西吗?

1 个答案:

答案 0 :(得分:2)

计算机时间总是比看起来复杂。 ?

在这种情况下,似乎只是您在考虑从特定日期选择提交方面。但是,在Git中,--since(或--after,具有相同的含义)计算出精确的秒数:

--after=2020-07-18

表示“无论现在是什么时候,但在那一天之后”,并且:

--after=1.day.ago

表示“自1天前恰好开始24小时后”或“从这一秒中减去86400秒,并将其用作后值”。您可以像you commented一样精确:

--after=2020-07-18-00:00:00

强制Git使用指定日期的午夜。

请注意,--before / --until--after / --since始终使用提交者时间戳,而不是作者时间戳< / em>。另请参见Specification for syntax of git dates中链接的this blog entry at alexpeattie.comthis answer。有关更多背景信息,请参见Falsehoods programmers believe about time