使用哈希获取git commit的年龄

时间:2019-06-25 00:04:59

标签: git git-hash

如果我们有git commit哈希:

42f35295744738750a665dc846400c8040659d03

有没有一种方法可以确定/计算创建日期,而无需提供更多信息?

1 个答案:

答案 0 :(得分:1)

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

$ 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

有关详细信息,请参见the PRETTY FORMATS section of the git log documentation