您现在的位置是:首页 >学无止境 >解决使用git命令查看的某次提交时间与git log中显示的不一致的问题网站首页学无止境
解决使用git命令查看的某次提交时间与git log中显示的不一致的问题
问题描述
笔者的使用环境:
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 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" 某个提交的哈希值
【附录】
关于前缀 a
、c
更多的参数,可见官方文档:https://git-scm.com/docs/git-show
另外,如果想查看某次提交的 作者日期
,也可用如下代码:
git log --pretty=format:"%ad" -n 1 某个提交的哈希值