如何查看执行的最新`git pull`的日期和时间?

Chi*_*tel 83 git git-pull

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

smo*_*ove 136

stat -c %Y .git/FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

将为您提供该文件最后修改的unix时间戳.每次拉或取时Git都会写入FETCH_HEAD文件,即使没有任何东西可以拉动.

  • 在OSX上修改时间的Unix时间戳:`stat -f'%m'.git/FETCH_HEAD` (17认同)
  • Git写入FETCH_HEAD _before_实际的fetch/pull ...因此,如果pull失败或被取消,则FETCH_HEAD将不代表实际的存储库状态.当原始repo URL不起作用时,这尤其成问题,因为每次拉动都会失败,但FETCH_HEAD将在每次尝试时更新. (16认同)
  • OS X上修改时间的日期:`stat -f'%Sm'$(git rev-parse --show-toplevel)/.git/FETCH_HEAD` (8认同)
  • 您还可以检查`.git/refs/heads/master`,当`git pull`导致来自远程`master`分支的更改时,它将更改其时间戳,但是当`git pull`时,时间戳不会改变报告没有变化. (7认同)
  • 对于在脚本中使用它的任何人:如果还没有完成提取或拉取,那么FETCH_HEAD将不存在,stat将返回退出代码1. (5认同)
  • 在bash上人类可读:`date -d @ $(stat -c%Y .git/FETCH_HEAD) (2认同)

小智 34

在预感中,我尝试了"stat -c%y .git/FETCH_HEAD",并获得了人类可读的时间打印输出:

> stat -c %y .git/FETCH_HEAD
2015-02-24 17:42:08.072094410 -0500
Run Code Online (Sandbox Code Playgroud)

此外,您可以添加 when = !stat -c %y .git/FETCH_HEAD[alias]〜/ .gitconfig文件中的部分(通过在任何git仓库中运行以下命令行来自动执行此操作)

git config --global alias.when '!stat -c %y .git/FETCH_HEAD'
Run Code Online (Sandbox Code Playgroud)

然后您可以随时使用新的"命令"找到此信息:

> git when
2015-02-23 15:07:53.086254218 -0500
Run Code Online (Sandbox Code Playgroud)

[然后我发现做"man stat",我发现'stat'程序还有一堆其他%参数可用.因人而异.]

  • 这是最有用的答案! (4认同)
  • 只是一个注释。对于 Mac,“-c”不是“stat”的有效选项。 (2认同)

Gre*_*ill 22

git show命令显示最近提交的日期.这不是提交被提取到本地存储库的日期,但是Git没有保留这样的提取信息.

您可以使用服务器上文件的ctime(创建时间)找到最后一次拉动的时间.例如:

ls -lct
Run Code Online (Sandbox Code Playgroud)

显示每个文件的ctime,按最近的第一个排序.

  • 这不回答这个问题 - 请参阅下面的smoove答案. (15认同)
  • 我不敢苟同.这确实回答了这个问题.虽然它没有给你最新拉动的日期,但它确实给你提交的日期,这是你最后一次拉动时的最新日期.对于原始问题中的用例,这非常合适.您想知道上次通过git pull更新服务器上的代码的时间,即当前服务器上的代码版本.`git show`告诉你本地克隆所在的提交.(我知道这是旧的,但我最终通过搜索结束了.) (3认同)

ara*_*nid 9

在非裸存储库(并且裸存储库没有意义git pull)中,git将所有更改记录到分支提示和当前分支构思中的"reflogs"中.git/logs.您可以使用查看这些内容git log -g.

但是,虽然日志文件确实有时间戳,但似乎不会git log -g打印它.但是,.git/logs/HEAD例如,如果你看一下,你会发现解析它的格式非常简单 - 它包括ref(或HEAD)的变化,更改,更改者,时间和活动消息.


sac*_*_ur 8

git show -1 --stat  
Run Code Online (Sandbox Code Playgroud)

此 git 命令显示最新更改提交时间和日期以及消息