人總是會有手殘眼糊腦弱的時候,總要有補救辦法。
今天遇到的狀況像是下圖這樣,原本是把 3d 這個 branch 做好的功能 merge 回去 ui 這條上,然後要繼續開發 3d 這個 branch 的新功能,不過做完 merge 之後忘記切回 3d 這個 branch,繼續 commit & push,然後就錯了…
解決的方法可以把 ui 這條拉回去前面的 commit
這樣的話只要透過
$ git checkout ui $ git reset --hard 9ca06c3 $ git push -f
但這樣的話 merge 跟最新 commit 就都不見了,即使只有拉回去到 merge 那個點也是一樣。
所以解決的方式只好強制把 3d 這個 branch 也拉到跟 ui 一樣地方去
$ git checkout ui $ git branch 3d -f $ git checkout 3d $ git push
$ git checkout ui $ git reset --hard 9ca06c3 $ git push -f