commit的时候很容易就typo了,如果想要修改某个commit的message怎么办?
1. 还未开始新的commit
这种情况很简单:
git commit --amend
直接修改,esc +:wq 退出就行
2. 已经进行了后续的commit
假设错误commit的id是xxx,有两种策略:
git reset --soft ^xxx.
在运行上述命令之后,重新add并commit即可。
--hard 表示版本回溯,而--soft 则并不是真正回溯版本,你会发现运行上述命令之后,你的代码并没有发生变化,只是仓库版本回到了^xxx ,这样就可以重新commit了。
这个办法虽然简单,但是缺陷也很明显:所有xxx后面的提交都成为了一次提交,所以一般不建议用这种方法。
另一种办法稍有麻烦,需要新建一个分支:
git switch -c tmp ^xxx
git cherry-pick xxx
git commit --amend
git cherry-pick <依次后面的提交id>
git branch -D master
git branch -m temp master
运行上述命令之后,原先的分支被新分支完全替换,新分支的文件内容和原分支一摸一样,和远程的同步(i.e., push/pull) 也不会有任何问题,但是错误的那个message已经被改掉了。
参考:
https://segmentfault.com/q/1010000000761908
|