目录
一、需求
现状:在当前项目下输入 git log 显示如下,共三次commit(三次 commit 都已 push 到远程仓库)
目标:去掉 第一次提交的 "v1:" 和 第二次提交的 "v2:"
二、思路
使用 git rebase 命令,因为我们几乎需要修改所有的提交,所以使用 git rebase -i --root ,
如果只需要修改倒数第 n 次提交,可以使用 git rebase -i HEAD~n (注意 HEAD 要大写)
二、修改过程
1、项目根目录下,输入 git rebase -i --root ,后会显式所有的提交,前三行 即为三次 commit
git rebase -i --root
2、我们要修改前两次提交,修改第二行,和第三行的 pick 为 reword。当前模式下按 i 进入编辑模式,将前两行的 pick 改为 reword,如下:
3、退出编辑模式,保存退出(此处为 vim 常用命令),之后会弹出第一个要修改的页面,如下:
4、直接将第一行的 "v1:" 去掉,保存退出即可:
5、接下来会弹出第二要修改的页面,直接编辑后保存退出,直至都完成后,会返回命令行,此时所有修改都已完成:
6、重新输入 git log,确认修改完成:
7、强制提交本地修改到远程仓库
git push --force