对于 Git 每一次提交的时间信息,什么是作者日期和提交者日期

什么是作者日期和提交者日期

对于 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
 */
public class GitCommandGenerator {
    /**
     * 生成如下的命令:将本分支最近一次的 commit 的时间修改为当前的时间
     *
     * @since 2023-4-29
     */
    public static String amendLastCommitToCurrentTime() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z", Locale.ENGLISH);
        String formattedDate = dateFormat.format(new Date());
        return "git commit --amend --no-edit --date \"" + formattedDate + "\"";
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值