如何检查最近执行的`git pull`的date和时间?

如何检查执行的最新git pull的date和时间? 当出现问题时,我经常需要知道服务器上的代码何时更改。

git show命令显示最近提交的date。 这不是提交到本地存储库的date,但Git不保留这样的提取信息。

您可以使用服务器上文件的ctime(创build时间)来查找最后一次拉取的时间。 例如:

 ls -lct 

显示每个文件的ctime,按照最近的第一个sorting。

 stat -c %Y .git/FETCH_HEAD 

会给你一个该文件的最后修改的Unix时间戳。 即使没有任何东西需要拉动,Git也会在每次抓取或抓取时写入FETCH_HEAD文件。

在预感上,我尝试了“stat -c%ygit / FETCH_HEAD”,并得到了一个可读的时间打印输出:

 > stat -c %y .git/FETCH_HEAD 2015-02-24 17:42:08.072094410 -0500 

另外,你可以在〜/ .gitconfig文件中添加when = !stat -c %y .git/FETCH_HEAD[alias]部分(通过在任何git仓库中运行下面的命令行,这是最安全的)

 git config --global alias.when '!stat -c %y .git/FETCH_HEAD' 

然后你可以随时用新的“命令”find这个信息:

 > git when 2015-02-23 15:07:53.086254218 -0500 

[那么,我发现做“人的统计”,我发现“统计”程序有一堆其他%参数可用。 因人而异。]

在一个非裸仓库(和一个裸仓库没有意义的git pull ),gitlogging所有更改分支提示和当前分支的想法在“reflogs”,在.git/logs 。 你可以使用git log -g查看这些。

但是,虽然日志文件确实有时间戳,但是不会显示git log -g会打印它。 然而,如果你看一下.git/logs/HEAD ,你会发现这个格式的parsing非常简单,它包括ref(或者HEAD)从哪里改变,改成谁,谁改变它,何时和活动消息。

使用python: python -c "import os;print os.stat('.git/FETCH_HEAD').st_mtime"