撤消git合并到远程分支

时间:2019-11-25 14:52:22

标签: git

长话短说,我有一个远程分支(我的远程分支),该分支在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

有没有办法消除我的错误(撤消合并,仅从分支中的历史记录中删除提交),以便我可以执行应该执行的步骤?

1 个答案:

答案 0 :(得分:0)

您可以使用

撤消上一次提交
git checkout my-remote-branch
git reset --hard HEAD~1

source

如果最后一次提交不是“不好的”提交,则可以使用git log查找最后一次好的提交的最后一个哈希,然后执行

git reset --hard HASH

(用相应的哈希替换HASH)。


之后,您回到了起点,可以做您认为正确的事情。