当前位置: 首页 > article >正文

git-提交时间和作者时间的区别

1.介绍

定义介绍
提交时间(Committer Date):决定了提交在 Git 历史中的位置,通常影响 GitHub 上提交显示的顺序。
作者时间(Author Date):虽然不影响提交的排序,但在每个提交详情页面上可以看到这个时间,它代表的是原始提交的时间。

使用场景
本地或者远程服务器是根据提交时间进行排序显示提交记录的先后顺序,这也是符合我们常识的;而作者时间不参与排序,只作为显示列。因此我们本地看到的时间并不是提交时间,而是作者时间。这个后面验证。

发生时机
当我们正常执行git commit时,提交时间和作者时间时一致的
当我们执行git commit --ammend时,当前的提交记录会覆盖上次本地未push的提交记录,此时提交时间和作者时间就不一致了

2.查看提交记录的提交时间和作者时间

提交记录时间线如图
在这里插入图片描述
这里的test提交记录是本地已提交但未push的记录,我们以此记录进行测试和验证,该记录的commitID为581118dd
在这里插入图片描述

查看时间命令

git show 581118dd --format=fuller

在这里插入图片描述

可以看到提交时间和作者时间是一致的,现在我们使用git commit --ammend重新提交一次记录,记录备注信息为 test2.
在这里插入图片描述
此时commitId也发生了变化。
查看带–ammend重新提交后的提交时间和作者时间,执行命令

git show 2c8c9163 --format=fuller

在这里插入图片描述
当前2c8c9163相比581118dd只改变了提交时间,但并修改作者时间。

修改当前2c8c9163记录的作者时间,因为次提交记录的时间是2025/02/07,我们修改为2025/02/06
在这里插入图片描述
执行命令

git commit --amend --no-edit --date "2025-02-06 00:00:00"

在这里插入图片描述
查看作者时间是否改变:

git show 770fc30c--format=fuller

在这里插入图片描述
可见,改变的确实作者时间,我们看一下本地开发工具显示效果。

在这里插入图片描述
提交记录确实被修改为了770fc30c,时间被修改为了 2025/02/06,但是提交记录并未按照显示的时间进行排序,因此我们验证
1.提交记录并未按照作者时间进行排序,而是根据提交时间排序
2.本地开发工具显示的时间并不是提交时间,而是作者时间。

3.拓展

修改提交时间
此命令只修改提交时间,并不会修改作者时间。

GIT_COMMITTER_DATE="YYYY-MM-DD HH:MM:SS" git commit --amend --no-edit

将 “YYYY-MM-DD HH:MM:SS” 替换为你希望设定的新日期和时间。

更新提交时间
此命令不会修改作者时间,只会讲提交时间设置为当前时间。

GIT_AUTHOR_DATE="YYYY-MM-DD HH:MM:SS" git commit --amend --no-edit

将 “YYYY-MM-DD HH:MM:SS” 替换为你希望设定的新日期和时间。

修改作者时间并更新提交时间
此命令会修改作者时间,并且会更新提交时间为当前时间。

 git commit --amend --no-edit --date="YYYY-MM-DD HH:MM:SS"

将 “YYYY-MM-DD HH:MM:SS” 替换为你希望设定的新日期和时间。
修改提交时间和作者时间

GIT_COMMITTER_DATE="YYYY-MM-DD HH:MM:SS" git commit --amend --no-edit --date="YYYY-MM-DD HH:MM:SS"

将 “YYYY-MM-DD HH:MM:SS” 替换为你希望设定的新日期和时间。

修改指定提交记录的作者时间
在这里插入图片描述

1.线修改系统默认文本编辑器
这里以linux为例,设置vim为默认文本编辑器

git config --global core.editor "vim"

在这里插入图片描述

2.编启动交互式 rebase
使用以下命令开始一个交互式的 rebase 过程,从你想修改的提交点开始。假设你知道想修改的提交是从当前分支起点算起的第n个提交,那么可以运行:

git rebase -i HEAD~n

这里执行的最新三条记录

git rebase -i HEAD~3

在这里插入图片描述
改动后
在这里插入图片描述
按照vim操作命令保存退出

如果你知道具体的提交哈希值,也可以基于该提交进行rebase:

git rebase -i <commit-hash>^

注意这里的 是目标提交的前一个提交的哈希值。

3.标记提交为 edit:在打开的文本编辑器中,将你想修改作者时间的那行前面的单词 pick 改为 edit,然后保存并关闭编辑器。这会告诉 Git 在这个提交处暂停,允许你进行修改。
设置作者时间并 amend 提交:Git 会暂停在这个提交上,这时你可以设置新的作者时间,并使用 --amend 选项来更新提交:

GIT_AUTHOR_DATE="YYYY-MM-DD HH:MM:SS" git commit --amend --no-edit

将 “YYYY-MM-DD HH:MM:SS” 替换为你希望设定的新日期和时间。
这里我们使用

git commit --amend --no-edit --date "2029-06-06 06:06:06"

在这里插入图片描述

5.继续 rebase 过程:完成修改后,使用以下命令继续 rebase:

git rebase --continue

在这里插入图片描述

6.解决冲突(如果存在):如果在 rebase 过程中有任何冲突,请解决这些冲突,并使用 git add . 标记冲突已解决,然后再次运行 git rebase --continue 直到 rebase 完成。

查看效果
在这里插入图片描述


http://www.kler.cn/a/553633.html

相关文章:

  • 当使用vcpkg安装的qt5时,在VS调用出现libcrypto-*-x64.dll不是有效路径时
  • Docker如何切换文件目录安装——详细攻略!
  • IOS UITextField 无法隐藏键盘问题
  • 苹果新品今日发布,AI手机市场竞争加剧,近屿智能专注AI人才培养
  • 《深度学习》——ResNet网络
  • 无人机避障——感知篇(采用Livox-Mid360激光雷达获取点云数据显示)
  • 使用 Python 和 OpenCV 进行图像边缘检测:从基础到实战
  • 基于MATLAB的均匀面阵MUSIC算法DOA估计仿真
  • 基于SpringBoot+vue粮油商城小程序系统
  • 汇能感知的光谱相机/模块产品有哪些?
  • 【机器学习】K折交叉验证(K-Fold Cross-Validation)
  • 网工项目实践2.4 北京公司安全加固、服务需求分析及方案制定
  • linux内核数据结构之哈希表
  • 【Cesium学习(十二)】Cesium常见问题整理总结
  • dockerfile2-15
  • Vue 3最新组件解析与实践指南:提升开发效率的利器
  • Excel如何给单元格填色,以及如何用Python 3实现单元格填色
  • deepseek帮我设计物理量采集单片机口保护电路方案
  • 市场波动中的数据分析与策略优化
  • Spring源码分析のBean创建流程(下)