使用 git rebase 修改歷史的 commit

假設,現在的 commit log 如下:
commit 1    ad34gf
commit 2    3de76k
commit 3    99i8ue
一般使用 git commit --amend 只能修改最後一個 commit,也就是 commit 1 ad34gf,但是要怎麼修改再之前的 commit 呢?
這時候就要使用 git rebase 的指令。假設我們要修改 commit3 99i8ue
  1. 輸入以下指令:
     $ git rebase --interactive 99i8ue^
    
    請注意,commit 號碼後面要加上 ^ 符號
  2. 然後就會進入類似編輯 commit 的畫面,並且有類似下面的資料:
     pick    99i8ue        commit 3
     pick    3de76k        commit 2
     pick    ad34gf        commit 1
    
    把第一行的 pick 改成 edit 後儲存:
     edit    99i8ue    commit 3
    
  3. 接下來,修改要變更的文件,修改完成之後,使用 git commit --amend 來變更 commit。
  4. 最後,再輸入以下指令完成修改:
     git rebase --continue
    

參考資料

關鍵字: git, rebase

留言

這個網誌中的熱門文章

Terminal 預設換行

血庫人的夢魘 - 令人崩潰的抗癌新藥

Thomsen‐Friedenreich antigen (T 抗原) 活化病人之輸血策略