Well,其實大部分的作法跟上一篇蠻相近的,我們都必須先進到commit紀錄中,一探究竟:
git log --oneline
然後我們都必須停在某個commit上,所以輸入:
git rebase -i 507908b
然後進到Vim裡面,會看到各種紀錄:
輸入:
i或a或o
改變了模式為insert,那這次由於要把某一個commit中加入新的commit,所以我們選擇一個新的commit紀錄,改為edit:
就選它(bcb20d4)吧
然後一樣先離開insert模式
先輸入 Esc
然後輸入 :wq
這時候這個畫面有兩個指令讓你選擇:
git commit --amend
git commit --continue
如果你還記得上一篇的話,輸入下面git commit --continue就會直接把rebase完成。
git commit --continue
But,但我們現在不可以這樣做:
我們來建個新的東西吧!
touch JJ.html
git add JJ.html
git commit "JJ.html"
touch CC.html
git add CC.html
git commit "CC.html"
結束上面的建新檔案、add、commit之後
就給它執行:
git rebase --continue
這個時候,我們就會看到剛剛挑中的edit紀錄的後面多了兩個commit紀錄:
add CC.html
add JJ.html
一樣起手式:
git log --oneline
進到Vim
git rebase -i 507908b
ok,然後我們來動手調動一些紀錄的順序:
我們把JJ.html、CC.html調到DD.html前面。
btw,這裡要千萬記住:Vim跟Git在紀錄順序上的邏輯是完全不一樣的,Git是越上面越新,Vim是越下面越新。
一樣起手式看目錄+rebase指令後:
我想把那幾個JJ、CC、DD的奇怪commit都刪掉:
就直接動手砍,然後Vim存檔離開:wq
嗯,看來是很順利呢!
鐵人賽