这不是你认为的问题。
我想知道什么时候创建了一个特定的引用。我不想知道作者时间戳或提交者时间戳是什么。
例如:如果我从远程回购(更新本地回购)中提取,我希望检索本地回购参考文献创建时的时间戳。
[remote-host]$ git show --format='%H %cD' refs/heads/master
25f2508a379adf2f8aa264afe6f7e5046943274a Mon, 1 Aug 2016 11:33:12 -0700
[remote-host]$ logout
Connection to remote-host closed.
[local-host]$ git fetch
remote: Counting objects: 165073, done
remote: Finding sources: 100% (1836/1836)
remote: Total 1836 (delta 484), reused 1374 (delta 484)
Receiving objects: 100% (1836/1836), 4.10 MiB | 0 bytes/s, done.
Resolving deltas: 100% (484/484), completed with 262 local objects.
...
[local-host]$ git show --format='%H %cD' 25f2508a379adf2f8aa264afe6f7e5046943274a
25f2508a379adf2f8aa264afe6f7e5046943274a Mon, 1 Aug 2016 11:33:12 -0700
[local-host]$ date
Mon Aug 1 11:50:44 PDT 2016我想要的输出是Mon Aug 1 11:50:44 PDT 2016 (即获取的时间),而不是在远程主机和本地主机上完全相同的提交者日期。
我想要使用git reflog,但该命令的输出却奇怪地没有任何时间戳信息。
发布于 2016-08-01 19:22:39
我不认为git跟踪您正在寻找的信息,我认为这更准确地描述为“blob在我的本地系统上创建的日期”。
你可以:
mtime是在您的系统上创建的时间(因为它不应该被任何后续操作修改):
cid=25f2508a379adf2f8aa264afe6f7e5046943274a如果测试-f ..git/-f/${ fi :0:2}/${fi:2};则ls -l ..git/objects/${fi:0:2}/${fi:2}fimtime是您想要的日期:
对于idx在. git /objects/pack/*.idx中;如果git显示-索引< $idx区grep $cid;则ls -l ${idx/idx/pack}发布于 2016-08-01 18:45:26
使用--date=short或--date=relative / --relative-date (或者实际上使用任何日期指令)将在{...}部分中显示reflog条目本身的时间戳,而不是提交的时间戳:
$ git reflog torturetest --date=relative
8bb1189 torturetest@{3 days ago}: branch: Created from HEAD
$ git reflog torturetest --date=default
8bb1189 torturetest@{Fri Jul 29 00:17:04 2016 -0700}: branch: Created from HEAD这方面的主要问题是,无法保证Created from条目的存在:它可能从未被放入重发,或者它可能已经过期。
https://stackoverflow.com/questions/38705793
复制相似问题