Git:日志修改
一、问题描述
有小伙伴提出一个需求,为了满足某种需要,需要在Git日志中增加一条提交记录,并且需要指定提交时间。
比如,以下面这个only-allow
项目为例,想在它的Git日志2023/9/26 19:08:08
前插入一条2023/9/28 19:08:08
的代码提交日志。
二、解决方案
(1)提交修改文件:
git commit -a --date="2023-09-28T19:08:08" -m "新增一条记录"
(2)编辑记录:
git rebase -i HEAD~5
输入i
进入编辑模式,将最后一条记录pick 6e2a5f6 新增一条记录
移动到pick ac64773 1.2.0
的记录后面:
然后按Esc
,输入:wq
退出编辑:
提示有代码冲突,需要解决,解决冲突后,接着输入:
git rebase --continue
如果需要编辑可以按i
,否则直接输入:wq
退出编辑:
再次提示有代码冲突,需要解决,解决冲突后,接着输入:
git rebase --continue
如果需要编辑可以按i
,否则直接输入:wq
退出编辑。如此反复操作,直至完成:
看一下最终效果:
这里有个问题,使用下面的命令查看:
git log --pretty=fuller
可以看到对应的CommitDate也并非我们指定的时间。
如果要改变这个CommitDate,我们继续编辑:
git rebase -i HEAD~5
输入i
进入编辑模式,将对应记录移动并将其pick
改为edit
:
然后按Esc
,输入:wq
退出编辑:
接着输入:
set GIT_COMMITTER_DATE="2023-09-28T19:08:08"
git commit --amend --date="2023-09-28T19:08:08"
然后按Esc
,输入:wq
退出编辑,接着输入:
git rebase --continue
完成操作后,查看一下效果:
注意:
可以看到,上述操作会导致所有的CommitDate都被修改成相同的目标时间,并且所以记录的Commit也出现本人操作信息,后续有时间再研究。