一、分两种情况
- 已经将代码push到远程仓库
- 还没将代码push到远程仓库,还在本地的仓库中
这两种情况下的修改大体相同,只是第一种情况最后会多一步后面会做介绍。
二、具体操作
先搞清楚你要修改哪次的提交注释或者哪几次的提交注释
2.1 修改最后一次注释
如果你只想修改最后一次注释(就是最新的一次提交),那好办:
git commit --amend
出现有注释的界面(你的注释应该显示在第一行), 输入 i 进入修改模式,修改好注释后,按Esc键 退出编辑模式,输入:wq保存并退出。ok,修改完成。
例如修改时编辑界面的图:
2.2 修改之前的注释 或者修改之前的某次注释
步骤一
输入:
git rebase -i HEAD~2
最后的数字2指的是显示到倒数第几次 比如这个输入的2就会显示倒数的两次注释(最上面两行)
步骤二
切换到编辑模式(和linux vi编辑器一样)
你想修改哪条注释 就把哪条注释前面的pick换成edit。方法就是上面说的编辑方式:键盘输入:i 进入编辑模式,把 pick 修改成 edit 然后按 Esc键 修改完毕后输入 :wq 进行保存。
步骤三
然后:(接下来的步骤Terminal会提示)
git commit --amend
在这一步修改 commit的信息
步骤四:
修改注释,保存并退出后,输入:
git rebase --continue
其实这个原理我的理解就是先版本回退到你想修改的某次版本,然后修改当前的commit注释,然后再回到本地最新的版本
2.3 修改之前的某几次注释
修改多次的注释其实步骤和上面的一样,不同点在于:
- 步骤二 时你可以将 多个 想修改的commit注释前面的pick换成edit
- 依次修改 你的注释(顺序是从旧到新),Terminal基本都会提示你接下来的操作,每修改一个注释都要重复上面的步骤三和步骤四,直到修改完你所选择的所有注释。
三、强制覆盖远端分支的提交信息(需要特别谨慎)
需要注意的一点是如果你之前已经将代码push到远程仓库那么首先,你把最新的版本从远程仓库先pull下来,修改的方法都如上,最后修改完成后,强制push到远程仓库:
git push --force origin master
注:很重要的一点是,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你又强制push,那么会被你的强制更新覆盖!!!
最后,可以检查一下远程的提交记录~~
版权归原作者 T-OPEN 所有, 如有侵权,请联系我们删除。