长话短说,我正在处理一个远程分支(my-remote-branch),但它在 CI 中的一些测试失败了。我被告知要重新建立 master 来解决这个问题。
我做了以下事情:
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 交织在一起。
显然我是什么supposed要做的是:
git fetch origin master
git rebase -I origin/master
git push —force
有没有办法可以撤消我的错误(撤消合并,仅从我的分支中的历史记录中删除提交),以便我可以执行我应该执行的步骤?
你可以撤消最后一次提交
git checkout my-remote-branch
git reset --hard HEAD~1
source https://www.git-tower.com/learn/git/faq/undo-last-commit
如果最后一次提交不是“坏”提交,那么您可以使用git log
找到最后一个好的提交的最后一个哈希值然后执行
git reset --hard HASH
(代替HASH
与相应的哈希)。
之后你就回到了起点,可以做你认为正确的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)