以下整理rebase的过程:
* 第一步,确认自己所在分支,必须注意,必须确认,确认,确认!
* 第二步:确定要rebase的commit的数量,不能蛮算。
* 使用git log 命令,查看git操作记录,确定要rebase的commit数量。
* 第三步:确定rebase的commit数量,执行命令
git rebase -i HEAD^^
* 第四步:进入rebase 的vi编辑模式
* p, pick = use commit
* r, reword = use commit, but edit the commit message
* e, edit = use commit, but stop for amending
* s, squash = use commit, but meld into previous commit
* f, fixup = like “squash”, but discard this commit’s log message
* x, exec = run command (the rest of the line) using shell
* d, drop = remove commit
* 注意,只需要,在第二个(此处是在两个commit合并成一个commit的情况下执行的!)的commitId前面,将pick修改为s(编译器会自动将s 变成 squash),然后,wq!退出保存即可。
* 第五步:在第四步顺利的情况下,可以直接git push -f 即可。
* 但是如果第五步失败了!
* 执行以下的操作!
* 继续执行 git rebase -i HEAD^^ --allow-empty
* 此处的允许空,是根据提示报错执行的,如果继续报错,但是其实可以看见,提示会变成,使用命令 git rebase —continue,继续执行。
* 此时因为执行过git rebase —continue ,则继续进入vi编辑模式,会看见,有两个对应commitId的message。
* 可以开始修改自己的message,然后保存退出。
* 执行命令 git log,发现最新的commit已经变换
* 执行命令 git status,查看当前git的命令
* 最后执行 git push -f
* 查看远程的GitHub的想对应的pr界面,发现 commit已经变换。