两种情况:
1.已经将代码push到远程仓库
2.还没将代码push到远程仓库,还在本地的仓库中
这两种情况下的修改大体相同,只是第一种情况最后会多一步
下面来说怎么修改
先搞清楚你要修改哪次的提交注释或者哪几次的提交注释
修改最后一次注释
如果你只想修改最后一次注释(就是最新的一次提交),那好办:
git commit --amend
出现有注释的界面(你的注释应该显示在第一行), 输入i
进入修改模式,修改好注释后,按Esc
键 退出编辑模式,输入:wq
保存并退出。ok,修改完成。
例如修改时编辑界面的图:
修改之前的注释
修改之前的某次注释
-
输入:
git rebase -i HEAD~2
最后的数字2指的是显示到倒数第几次 比如这个输入的2就会显示倒数的两次注释(最上面两行)
-
你想修改哪条注释 就把哪条注释前面的
pick
换成edit
。方法就是上面说的编辑方式:i
---编辑,把pick
换成edit
---Esc
---:wq
. -
然后:(接下来的步骤Terminal会提示)
git commit --amend
-
修改注释,保存并退出后,输入:
git rebase --continue
其实这个原理我的理解就是先版本回退到你想修改的某次版本,然后修改当前的commit注释,然后再回到本地最新的版本
修改之前的某几次注释
修改多次的注释其实步骤和上面的一样,不同点在于:
- 同上
- 你可以将多个想修改的commit注释前面的
pick
换成edit
- 依次修改你的注释(顺序是从旧到新),Terminal基本都会提示你接下来的操作,每修改一个注释都要重复上面的3和4步,直到修改完你所选择的所有注释
已经将代码push到远程仓库
首先,你把最新的版本从远程仓库先pull下来,修改的方法都如上,最后修改完成后,强制push到远程仓库:
git push --force origin master
注:很重要的一点是,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你又强制push,那么会被你的强制更新覆盖!!!
最后,可以检查一下远程的提交记录~~
作者:筱湮
链接:https://www.jianshu.com/p/098d85a58bf1