要修改历史中其中一条commit的message,需要用到以下命令
git rebase -i [要修改的commit的下一个commit的版本号]
这里我要修改 47442bb 这个版本的信息,把 add css 改成 add index.css,就需要用到 47442bb 的上一个版本号,也就是5ebd323c
按下回车就会进入下面的界面。
第一第二行,是 5ebd323c 这个版本之后的所有 commit 的 message。
因为我们只需要把 add css 改成 add index.css,所以我们按照 git 给我们的提示,改一下第一行就行了。
根据提示,需要把 pick 改成 reword。
通过 wq! 保存并退出。
然后git的界面会弹出另外一个交互的窗口。这时候就可以修改message了。
修改完,通过 wq!保存并退出即可。
弹出如上信息就说明修改成功了。
这时通过 git log 就能查看修改结果。
修改完成后,原本的commit的版本号也会跟随变化。
【补充】以下附上更详细的操作步骤
1、git log --oneline -5
查看最近5次commit的简要信息,输出信息为:简短commitID commit_message,可以根据需要查看最近n次的提交
也可以git log -5,输出信息相对详细些,commitID为完整的,这里只需要加上参数–oneline查看简短commitID即可
2、git rebase -i <简短commitID>
如果需要修改从上往下第2个commit_message,这里的简短commitID为上面输出信息的第3个,以此类推
在弹出的窗口中,以VIM编辑方式显示了最近两次的提交信息
3、(按照VIM操作)按i键,进入编辑模式,将想要修改的提交前的pick改为reword,如果需要修改多个,也可以将对应的多个pick改为reword
4、(按照VIM操作)按ESC键 再按 shift + : 然后输入wq(w是保存,q是退出) 按回车键
5、在弹出的窗口中,按i进入编辑模式,就可以修改commit_message了
6、(按照VIM操作)按ESC键 再按 shift + : 然后输入wq(w是保存,q是退出) 按回车键(同第4步)
如果第3步中修改了多个pick为reword,则会多次弹出修改界面,重复第5~6步即可
7、再使用第1步的命令查看一下修改结果,git log --oneline -5或者git log -5,查看修改是否已经完成
8、最后强制push上去git push --force
快捷操作:
1,修改最近一次的commit 信息
git commit --amend
然后就会进入vim编辑模式
2,比如要修改的commit是倒数第三条,使用下述命令:
git rebase -i HEAD~3
3, 退出保存 :wq
4,执行 git rebase --continue
5,执行 git push -f
推送到服务端。