文章目录
什么是作者日期和提交者日期
对于 Git 的每一次提交,在 TortoiseGit 和 IntelliJ IDEA 都可以看到这次提交的时间。但很多人不知道的是,Git 实际上对每一个提交的时间分为两个:作者日期和提交者日期。
- 作者日期(author date):这指的是最开始提交时,所产生的提交文件上的日期
- 提交者日期(committer date):这指的是对这个提交最后一次操作的日期
这有点类似于操作系统中文件的创建时间与修改时间。
当使用 Git 进行一次提交时,这次提交的时间就会变成
作者日期
。如果以后因为某种原因对这次提交进行了一些修改、压缩等操作,则对这个提交最后一次操作的日期就会变成
提交者日期
。
所以一般情况下,
提交者日期
不会早于
作者日期
。
如何查看作者日期和提交者日期
方法 1
如果想同时显示一个 Git 命令的
作者日期
和
提交者日期
,可以使用如下 Git 命令:
git log --format=fuller
更多的信息,可见官方文档:https://git-scm.com/docs/git-log
方法 2
- 查看作者日期:
git log --pretty=format:"%ad" -n 1 某个提交的哈希值
- 查看提交者日期:
git log --pretty=format:"%cd" -n 1 某个提交的哈希值
方法 3
- 查看作者日期:
git show -s --format="%ad" 某个提交的哈希值
- 查看提交者日期:
git show -s --format="%cd" 某个提交的哈希值
更多的信息,可见官方文档:https://git-scm.com/docs/git-show
修改最近一次提交的时间
如果想要修改最近一次提交的作者日期,可以使用如下命令。
git commit --amend --no-edit --date " Apr 29 22:40:00 2023 +0800"
比如,如果想把时间改为
2023 年 4 月 29 日星期六 22:40:00
,可以使用如下代码。
git commit --amend --no-edit --date "Fri Apr 29 22:40:00 2023 +0800"
其中,星期是可选的,不喜欢可以不输。
下面给出了一个可以自动生成当前时间的 Git 修改命令的 Java 代码。
/**
* Windows 下 Git 命令生成器
*
* @since 2023-4-29
*/publicclassGitCommandGenerator{/**
* 生成如下的命令:将本分支最近一次的 commit 的时间修改为当前的时间
*
* @since 2023-4-29
*/publicstaticStringamendLastCommitToCurrentTime(){SimpleDateFormat dateFormat =newSimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z",Locale.ENGLISH);String formattedDate = dateFormat.format(newDate());return"git commit --amend --no-edit --date \""+ formattedDate +"\"";}}
版权归原作者 暗诺星刻 所有, 如有侵权,请联系我们删除。