當今天Git commit 數越來越多時,有時候會遇到比較難整理的情況,因此我們可以考慮整理一下Git commit紀錄了。
使用rebase的互動模式 : git rebase -i cc797cdb
互動模式中表示是反過來的, 最下面的才是最新的
pick ⇒ 表示保留不動
r ⇒ 要更改
會再進入要更改commit 的vi 編輯器
add hello ⇒ add hello_v2
add container ⇒ add container_v2
⇒ 一樣修改完:wq 退出
最後兩個commit的內容都有改了
但因為這commit文字改了 ⇒ sha-1 也會改 ⇒ 整串的sha-1 都會更改
git rebase -i cd82f
進入互動模式
將"add dog2" 這個commit從 pick ⇒ 改成 s (squash) 融合至上個提交
更改commit
合併完成
讓我們把剛剛合併的兩個 commit 重新拆回去變成兩個
一樣使用使用互動模式 rebase: git rebase -i cd82f
pick 改成 e
git reset head~1 把這個commit拆掉重做
(不要用加上hard)因為我們要留在這個編輯模式
⇒ 再把兩個檔案分別add, commit
結束後 ⇒ git rebase --continue
Revert ⇒ 多作一個commit來抵銷前一個commit作的事情
git revert HEAD
⇒ :wq 存檔離開
就會多出一個revert 的 commit