世上没有后悔药,但是 git 有。是人总会犯错。“啪”,一个托马罗斯夫完美黄金螺旋的角度敲下回车之后,一拍脑袋,结果发现 commit 信息写错了。该怎么办呢?喝口浓茶压压惊,下面就看看 git 给我们的“后悔药”。
针对上一次提交
对于上一次的提交,我们可以通过这样简单修改:
git commit --amend --no-edit -m "new message" --date "Mon Mar 2 20:25:42 2020 +0800"
添加 --no-edit
参数之后,将不会使用 vi
去编辑 commit message 了,而是直接保存成功。
--date
参数可以让你修改提交的时间。该参数的值是遵循 RFC 5322 标准文档的。你可以使用 date -R
来打印出当前的时间,然后根据需要进行修改。
针对历史提交
当局者迷,旁观者清。当我们把代码提交上去,发现昨天写的 commit message 不美观,我想修改,怎么办呢?
首先,执行 git rebase -i <ref>
,这里的 ref
是要修改提交的父级 commit 的引用。
执行之后,进入vi
编辑模式,把需要修改的 commit 前的 pick
修改成 e
或者 edit
,然后保存
此时,依然使用上面的指令进行修改 commit message 和 date。git commit --amend --no-edit -m "new message" --date "Mon Mar 2 20:25:42 2020 +0800"
修改完成,执行 git rebase --continue
继续,直到修改结束。