簡體   English   中英

撤消git合並到遠程分支

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM