[英]Undo git merge to remote branch
長話短說,我有一個遠程分支(我的遠程分支)正在通過CI進行某些測試。 有人告訴我要改組以掌握此問題。
我做了以下事情:
git checkout master
git pull
git checkout my-remote-branch
git rebase master
git push
那時我得到一個錯誤:
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
所以接下來我做了:
git pull --set-upstream-origin my-remote-branch
git push
這種情況只是一團糟。 我的拉取請求現在有大量的提交(所有提交均來自主請求),因此歷史記錄都被弄亂了,並且對拉取請求的更改文件有誤導性。 這似乎比簡單的還原更為復雜,因為我不能只還原到一個提交,所有提交都與master交織在一起。
顯然我應該做的是:
git fetch origin master
git rebase -I origin/master
git push —force
有沒有一種方法可以撤消我的錯誤(撤消合並,僅從分支中的歷史記錄中刪除提交),以便我可以執行應該執行的步驟?
您可以使用撤消上一次提交
git checkout my-remote-branch
git reset --hard HEAD~1
如果最后一次提交不是“壞的”提交,則可以使用git log
查找最后一次好的提交的最后一個哈希,然后執行
git reset --hard HASH
(用相應的哈希替換HASH
)。
之后,您回到了起點,可以做您認為正確的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.