從 git rebase squash 恢復

引自:

http://www.burtonini.com/wordpress/2012/07/19/recovering-from-a-bad-git-rebase/

經測試可用,但是要注意,在選擇SHA1值的時候需要用checkout之前的那個

比如

$ git reflog
 ...
 9f46daa HEAD@{142}: rebase -i (finish): returning to refs/heads/gtkdoc
 ...
 8d7f266 HEAD@{166}: rebase -i (squash): glib-2.0: cleanup thanks to new gtk-doc.bbclass
 a8f06b1 HEAD@{167}: rebase -i (squash): updating HEAD
 0ac2f59 HEAD@{168}: rebase -i (fixup): # This is a combination of 3 commits.
 a8f06b1 HEAD@{169}: rebase -i (fixup): updating HEAD
 cccef4d HEAD@{170}: rebase -i (fixup): # This is a combination of 2 commits.
 a8f06b1 HEAD@{171}: rebase -i (fixup): updating HEAD
 c7ef1a6 HEAD@{172}: checkout: moving from gtkdoc to c7ef1a6
 14bdd14 HEAD@{173}: commit: glib squash
 ...


這裏要用"checkout: moving from gtkdoc to c7ef1a6" 之前就是14bdd14這個值作爲checkout的點

$git checkout -b my_recovery_branch 14bdd14

這樣一來,my_recovery_branch的狀態就是squash之前的樣子

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章