问题描述

笔者的使用环境:

  • Git 2.37.0.windows.1

  • TortoiseGit 2.11.0.0

  • IntelliJ IDEA 2022.3.1 (Ultimate Edition)

  笔者遇到一个问题,需要查看 Git 某个提交(commit)的时间,但是发现使用 Git 命令查看的时间与命令 git log、TortoiseGit、IntelliJ IDEA 中显示的不一致。而后三者显示的是一致的。

  笔者查看提交时间 Git 命令如下。

git show -s --format=%ci 某个提交的哈希值

  而且,更令人疑惑的是,对连续不同的提交,上面的那个命令显示的时间都是一样的。

缘由

经过不断的摸索,笔者终于明白了其中的缘由。

Git 对每一个提交的时间分为两个:

  • 作者日期(author date):这指的是最开始提交时,所产生的提交文件上的日期

  • 提交者日期(committer date):这指的是对这个提交最后一次操作的日期

这有点类似于操作系统中文件的创建时间与修改时间。

更多的信息,可见笔者的另一篇博客:

对于 Git 每一次提交的时间信息,什么是作者日期和提交者日期:
https://blog.csdn.net/wangpaiblog/article/details/130570779

上面那个命令显示的是提交者时间,而命令 git log、TortoiseGit、IntelliJ IDEA 中显示的时间是 作者日期,因此上面那个命令是错的。


【提示】

  如果想同时显示一个 Git 命令的 作者日期提交者日期,可以使用如下 Git 命令:

git log --format=fuller

  更多的信息,可见官方文档:https://git-scm.com/docs/git-log

在这里插入图片描述


解决办法

  为什么上面那个命令是错的呢?因为上面那个命令使用了参数 %ci,这个参数实际上显示的是提交时间。如果想显示 作者日期,应该使用以 a 开头的参数,如 %ai。所以上面的命令应该改为:

git show -s --format="%ai" 某个提交的哈希值

【附录】

  关于前缀 ac 更多的参数,可见官方文档:https://git-scm.com/docs/git-show

在这里插入图片描述

在这里插入图片描述


  另外,如果想查看某次提交的 作者日期,也可用如下代码:

git log --pretty=format:"%ad" -n 1 某个提交的哈希值

参考资料

https://git-scm.com/docs/git-show

https://git-scm.com/docs/git-log

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐