[GIT] Wrong merge and wrong branch
人總是會有手殘眼糊腦弱的時候,總要有補救辦法。
今天遇到的狀況像是下圖這樣,原本是把 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
然後再把 ui 這條 branch 往前面拉,變成像這樣
$ git checkout ui
$ git reset –hard 9ca06c3
$ git push -f
在ui branch上有新的commit之後就會變成這樣
其他可以參考https://blog.yorkxin.org/posts/git-rebase.html
Original link: Phanix's Blog