git merge了一個分支到master之後,提交到了github,怎麼在github也撤回merge。
淡淡烟草味
淡淡烟草味 2017-05-02 09:47:43
0
1
843

如題,手賤把還沒有完成的程式碼從分支merge到了master上,並且git push到了github上,之後在dev上繼續完善程式碼,然後想撤回這個合併的時候發現撤回本地的合併之後,不能push到github上了,顯示有衝突,不知道什麼原因。

淡淡烟草味
淡淡烟草味

全部回覆(1)
巴扎黑

如果你是在本地 merge 的,那你可以通過 git reflog 查看你的历史操作,然后通过 git reset --hard HEAD@{n} 回退到 reflog 里面的第 n

然後,git push origin master -f 就可以把遠端的 master 退回到之前的狀態了


其實,既然你是 merge 的,那麼就會產生一個 merge commit。你也可以先在本地 git checkout master, 这时候你本地的 master 也应该是最新的。先 git log 看下历史记录,然后根据 commit hash,git reset --hard xxxxxx 回退一下。

然後,同樣地,git push origin master -f 就可以更新遠端的 master了


兩種方式同理,因為你刪掉了一個 commit,而遠程是存在這個 commit 的,這時候兩百年的歷史信息是對不上的,因此你不能直接 git push origin master
除非你在这个 commit 之后新加了一个 commit,手动修改代码,回退到 merge 之前的状态,这样你不需要 -f,可以直接 git push origin master 更新

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板