提交比主存储库更早的提交日期

时间:2018-03-28 23:05:36

标签: git python-3.x logging author

有人会因为混淆Git日期而有人帮助我吗?我编写Python脚本以从 git log 中提取有关存储库的信息。在大型Linux存储库(https://github.com/torvalds/linux)上测试期间,我使用作者日期 --pretty =“%at”作为时间戳,并在Python中使用

转换为人类可读的字符串
datetime.datetime.fromtimestamp( timestamp ).strftime( '%Y-%m-%d %H:%M:%S' )

结果看起来很好但是在这个仓库中产生两个奇怪的日期:

2001-09-17 09:00:00 aebda618718157a69c0dc0adb978d69bc2b8723c
2001-09-17 09:00:00 dbe79bbe9dcb22cb3651c46f18943477141ca452

正如信息https://api.github.com/repos/torvalds/linux所说,repo是“created_at”:“2011-09-04T22:48:12Z”,我不知道它是如何可能的?提交比回购旧。

仅在CMD中使用 git log 我也检查了输出并得到了相同的结果。

1 个答案:

答案 0 :(得分:0)

Git提交中的时间戳取决于用户。

默认是使用计算机的当前时钟设置,这取决于用户。

在Linux存储库中提交aebda618718157a69c0dc0adb978d69bc2b8723c就是这个:

commit aebda618718157a69c0dc0adb978d69bc2b8723c
Author:     John Youn <John.Youn synopsys.com>
AuthorDate: Mon Sep 17 00:00:00 2001 -0700
Commit:     Felipe Balbi <balbi ti.com>
CommitDate: Wed Jul 22 08:52:42 2015 -0500

    usb: dwc3: Reset the transfer resource index on SET_INTERFACE

    This fixes an issue introduced in commit b23c843992b6 (usb: dwc3:
    gadget: fix DEPSTARTCFG for non-EP0 EPs) that made sure we would
    only use DEPSTARTCFG once per SetConfig.
[snip]
你可以看到由John Youn撰写并由Felipe Balbi犯下的。可能John Youn的计算机日期当时是错误的,2015年的日期可能是正确的。我们无法确切知道;我们只知道存储的时间戳是什么,而不是为什么它是特定值。

请注意,提交dbe79bbe9dcb22cb3651c46f18943477141ca452也会将John Youn列为其作者。他有许多其他提交看似正确的日期,所以很难确定,但也许他的计算机时钟在某些时候失败了。

相关问题