以下整理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已經變換。