如何从 git 存储库获取上次提交日期? [重复]

问题描述 投票:0回答:6

我需要 git 中的最后提交日期。这意味着我的程序中的最新更新日期。

我使用了命令:$

git log -1
,但是这个命令会给我本地存储库中的日期。相反,我需要来自远程存储库的日期。

我尝试了如下一些命令。

git log -n 1 origin/Sprint-6.
git rev-parse --verify HEAD
git git-commit
6个回答
53
投票

获取最后提交日期:

您想要给定 git 用户和 git 项目、给定分支的“存储库范围的最后提交日期”。例如,当您访问存储库并转到

commits -> master
时,日期显示在顶部:

https://github.com/sentientmachine/TeslaAverageGainByMonthWeekDay/commits/master

使用终端获取 git 中的最后本地提交日期

使用

git help log
了解有关格式代码的更多信息,以传递给
--format
告诉 git log 要获取哪种数据。

git 中的最后提交日期:

git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 07:40:52

但正如您所指出的,您必须在执行上次提交的计算机上运行该命令。如果上次提交日期是在另一台机器上执行的,则上述命令仅报告本地上次提交...所以:

或者存储库范围:获取最后一次 git 提交日期

与上面相同,但先执行 git pull

git pull; 
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 09:15:10

或者使用 JSON API:

git pull
的速度非常慢,而且你正在用繁重的操作敲击 GitHub。只需查询 GitHub Rest api 即可:

#assuming you're using github and your project URL is visible to public:
# https://github.com/yourusername/your_repo_name

#then do:
curl https://api.github.com/repos/yourusername/your_repo_name/commits/master

屏幕上全是 json,这会让你大吃一惊,所以将你最喜欢的 json 解析器发送给它并获取名为

date
:

的字段
curl https://api.github.com/repos/<your_name>/<your_repo>/commits/master 2>&1 | \
grep '"date"' | tail -n 1
#prints "date": "2019-06-05T14:38:19Z"

从下面的评论中,
gedge
对咒语进行了方便的改进:

git log -1 --date=format:"%Y/%m/%d %T" --format="%ad"
2019/11/13 15:25:44

或者更简单:( https://git-scm.com/docs/git-log/1.8.0 )

git --no-pager log -1 --format="%ai"
2019-12-13 09:08:38 -0500

您的选择是北、南、东和“丹尼斯”。


8
投票

从 git 存储库获取长的最后提交日期(Unix 纪元时间戳)

  • 命令:
    git log -1 --format=%ct
  • 结果:
    1605103148

注意: 您可以访问 git-log 文档以获取更详细的选项说明。


7
投票

git log -1
将为您提供合并 ID、作者和日期

git log -1 --format=%cd 

输出:

Wed Apr 13 15:32:54 2022 +0530

我们可以将日期格式化如下:

git --no-pager log -1 --pretty='format:%cd' --date='format:%Y-%m-%d %H:%M:%S'

输出:

2022-04-13 15:32:54


3
投票

另一个适用于 Linux 的 oneliner,获取 UTC ISO 8601 时间格式,精确到分钟:

TZ=utc date -d @$(git log -1 --format=%ct) --iso-8601=m

给予

2022-12-07T10:01+00:00


1
投票

虽然迟到了,但以下是如何获取最新远程提交的 UNIX 时间戳:

git log -1 --date=raw origin/master | grep ^Date | tr -s ' ' | cut -d ' ' -f2

0
投票

使用 git 版本 2.39.2 .

当我使用

~/.gitconfig
设置我的
showSignature = true
时,执行
git log -1 --format=%cI
将另外包含提交签名信息,例如

Good "git" signature for [email protected] with RSA key SHA256:abcd
2023-04-14T20:02:23+02:00

要删除提交签名信息,请添加

--no-show-signature
标志,例如
git log --no-show-signature -1 --format=%cI

2023-04-14T20:02:23+02:00
© www.soinside.com 2019 - 2024. All rights reserved.