0

如果我们有一个 git commit 哈希:

42f35295744738750a665dc846400c8040659d03

有没有办法在没有更多信息的情况下确定/计算它的创建日期?

4

1 回答 1

1

不完全是,不。您可以轻松提取两个时间戳(作者日期和提交者日期)中的任何一个,但两者都不一定与实际创建日期有关。例如:

$ GIT_AUTHOR_DATE='1970-1-1 00:00:00' GIT_COMMITTER_DATE='1970-1-1 00:00:00' git commit -m gotcha
[master (root-commit) 30e9626] gotcha
 1 file changed, 1 insertion(+)
 create mode 100644 foo
$ git log --pretty=fuller | sed 's/@/ /'
commit 30e9626dce78fd41c7ef6fae317e0ed61863f0cd
Author:     Chris Torek <chris.torek gmail.com>
AuthorDate: Thu Jan 1 00:00:00 1970 -0800
Commit:     Chris Torek <chris.torek gmail.com>
CommitDate: Thu Jan 1 00:00:00 1970 -0800

    gotcha

但是,如果您不担心计算机时钟严重错误和/或用户故意伪造他们的时间戳,请使用它们的%at或其%ct任何变体来提取作者或提交者时间戳:

$ git log --no-walk --format=%at HEAD
28800
$ git log --no-walk --format=%cd HEAD
Thu Jan 1 00:00:00 1970 -0800

有关详细信息,请参阅文档PRETTY FORMATS部分git log

于 2019-06-25T00:18:09.957 回答