我如何检查最近一次执行的‘GIT Pull’的日期和时间?

qlckcl4x  于 2022-09-21  发布在  Git
关注(0)|答案(7)|浏览(766)

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

7gyucuyw

7gyucuyw1#

stat -c %Y .git/FETCH_HEAD

将为您提供该文件最后一次修改的Unix时间戳。Git在每次拉入或提取时写入FETCH_HEAD文件,即使没有要拉入的内容也是如此。

s4chpxco

s4chpxco2#

凭直觉,我尝试了“stat-c%y.git/fetch_head”,得到了当时人类可读的打印输出:

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

此外,您可以将when = !stat -c %y .git/FETCH_HEAD添加到~/.gitconfig文件中的[alias]部分(通过在任何git repo中运行以下命令行自动执行此操作是最安全的)

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

然后你就可以用你的新“命令”随时找到这些信息了:

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

[然后我想到要执行“man stat”,我发现‘stat’程序还有许多其他的%参数可用。YMMV.]

ifsvaxew

ifsvaxew3#

git show命令显示最近一次提交的日期。这不是将提交拉到本地存储库的日期,但Git不保留这样的拉入信息。

您也许能够使用服务器上文件的ctime(创建时间)找到上次拉入的时间。例如:

ls -lct

显示每个文件的ctime,按最新文件的第一个排序。

rekjcdws

rekjcdws4#

git show -1 --stat

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

70gysomp

70gysomp5#

在非裸存储库中(而裸存储库对于git pull来说没有意义),Git在.git/logs中将对分支提示和当前分支想法的所有更改记录在“refLogs”中。您可以使用git log -g查看这些内容。

然而,尽管日志文件确实有时间戳,但git log -g似乎不会打印它。然而,如果您查看一下.git/logs/HEAD,您会发现该格式非常容易解析-它由引用(或头部)从什么更改、更改为、谁更改、何时更改以及一条活动消息组成。

lymnna71

lymnna716#

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

7d7tgy0s

7d7tgy0s7#

python -c "import os, datetime ;print datetime.datetime.fromtimestamp(os.stat('.git/FETCH_HEAD').st_mtime)"

python3 -c "import os, datetime ;print(datetime.datetime.fromtimestamp(os.stat('.git/FETCH_HEAD').st_mtime))"

相关问题