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

news/2024/7/23 8:19:16 标签: 代理, 委托, 打桩

文章目录

  • 什么是作者日期和提交者日期
  • 如何查看作者日期和提交者日期
    • 方法 1
    • 方法 2
    • 方法 3
  • 修改最近一次提交的时间

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

对于 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"

其中,星期是可选的,不喜欢可以不输。


下面给出了一个 Java 代码可以自动生成当前时间的 Git 修改命令。

/**
 * 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 + "\"";
    }
}

http://www.niftyadmin.cn/n/325188.html

相关文章

4月更新 | Visual Studio Code Python

我们很高兴地宣布2023年4月版 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出! 此版本包括以下改进: Data Wrangler 可供 Visual Studio Code Insiders 使用移动符号重构Create Environment 按钮嵌入依赖文件扩展作者的环境 APIPython 环境的内…

Logback+sl4j之logback.xml配置

标签作用&#xff1a; appender标签 控制日志输出的内容 logger标签 控制日志可进行打印的级别 root标签 是logger标签的父级&#xff0c;若logger标签中activityfalse则logger不进行继承。 难点梳理&#xff1a; 日志五个级别TRANCE<DEBUG<INFO<WARN<ERROR 1. ap…

语音识别 | kaggle鸟叫识别新赛赛题解析

整理自kaggle平台 赛题题目&#xff1a; BirdCLEF 2023 kaggle - 鸟声识别大赛 赛题链接&#xff1a;https://www.kaggle.com/competitions/birdclef-2023 赛题背景 鸟类是生物多样性变化的极好指标&#xff0c;因为它们具有高度流动性并且具有多样化的栖息地要求。因此物种…

UVM 验证方法学之interface学习系列文章(七)高级 《bind 操作》(3)

在之前的文章,我们就bind 机制,进行了用法分析。其实,对于一些大型的复杂SOC设计,bind的操作,可以说是非常实用的。它不仅能够完成各种UVC的驱动激励操作,而且一定程度能够简便验证平台的搭建和后期维护。下面,我们举个例子说明bind在当今复杂环境下的妙用。 一 TB 思…

Flutter报错Building with plugins requires symlink support的解决方法

错误 Building with plugins requires symlink support. Please enable Developer Mode in your system settings. Runstart ms-settings:developers to open settings. 原因 这个错误表示你的系统尚未启用开发者模式,所以无法使用Flutter的插件功能。 Flutter插件会通过符号…

教程硬货|微信小程序开发之基于vue的微信开发工具JS文件解读(一)

文章目录 1 前言2 前期准备3 微信开发者工具3.1 创建项目3.2 页面介绍 4 读懂Pages4.1 index.wxss4.2 index.wxml4.3 index.json4.4 index.js 5 logs6 小程序的主要文件6.1 app.js6.2 app.json 7 讨论 1 前言 鉴于前段时间出的第一篇记录安装Nodejs和HBuilderX搭建、部署微信小…

国产仪器仪表 1466C-V/1466D-V/1466E-V/1466G-V/1466H-V/1466L-V系列信号发生器

国产Ceyear 1466-V系列信号发生器是一款面向微波毫米波尖端测试的通用测试仪器&#xff0c;频率范围覆盖宽、射频调制带宽大、信号频谱纯度高&#xff0c;具有高准确度和大动态范围的功率输出&#xff0c;以及出色的矢量调制精度和ACPR性能&#xff0c;搭配单机双射频通道和多机…

4面华为测试开发,居然挂在这个地方....

说一下我面试别人时候的思路 反过来理解&#xff0c;就是面试时候应该注意哪些东西&#xff1b;用加粗部分标注了 一般面试分为这么几个部分&#xff1a; 一、自我介绍 这部分一般人喜欢讲很多&#xff0c;其实没必要。大约5分钟内说清楚自己的职业经历&#xff0c;自己的核…