从我所看到的,Git commit date和author date只能精确到一秒。 我想知道,如果这是精确的,或者我可以得到毫秒或甚至微秒的时间戳。
此命令使用第一次提交的提交哈希来返回UNIX时间戳 :
git show -s --format="%ct" 2d9afdfb9e2fa9b349312734b462bb7d57a684ee
结果: 1421437899
什么是GIT的提交date或作者date时间戳精度?
Git提交/作者日期的解决方案是1秒,正如Alexey Ten和Edward Thomson所指出的那样,也是Unix时间戳的解决方案 。
一个有趣的实验,你可以进行的是
如您所知, 修改提交实际上会创建一个新的提交 。 通常情况下,新提交会有不同的时间戳,因此,与第一次提交不同的提交ID。 但是,您可以编写一个脚本来创建提交并修改它,希望在同一个系统时钟秒内完成,从而生成与第一个哈希相同的提交。
首先,设置一下:
$ mkdir testGit $ cd testGit $ git init
然后将其写入一个脚本文件(下面称为commitAmend.sh
)
#!/bin/sh # create content and commit printf "Hello World.\n" > README.md git add README.md git commit -m "add README" git log # amend the commit git commit --amend --no-edit git log
并运行它:
$ sh commitAmend.sh [master (root-commit) 11e59c4] add README 1 file changed, 1 insertion(+) create mode 100644 README.md commit 11e59c47ba2f9754eaf3eb7693a33c22651d57c7 Author: Jubobs <xxxxxxxxxxx> Date: Fri Jan 30 14:25:58 2015 +0000 add README [master 11e59c4] add README Date: Fri Jan 30 14:25:58 2015 +0000 1 file changed, 1 insertion(+) create mode 100644 README.md commit 11e59c47ba2f9754eaf3eb7693a33c22651d57c7 Author: Jubobs <xxxxxxxxxxx> Date: Fri Jan 30 14:25:58 2015 +0000 add README
相同的时间戳,相同的散列!
这是一秒钟; 而git-show
会对输出进行一些修改,您可以使用git-cat-file
命令查看原始提交信息。 例如:
% git cat-file commit HEAD tree 340c0a26a5efed1f029fe1d719dd2f3beebdb910 parent 1ac5acdc695b837a921897a9d42acc75649cfd4f author Edward Thomson <ethomson@edwardthomson.com> 1422564055 -0600 committer Edward Thomson <ethomson@edwardthomson.com> 1422564055 -0600 My witty comment goes here.
你可以看到,这是一个Unix时间戳,分辨率为1秒。