我在分支上做了一些修改,我获取了修改并运行了'git merge'。然后我做了更多的本地修改并想修改我的提交:git commit --amend.但是当我尝试推送的时候,我收到了这个错误:
remote: error: GH006: Protected branch update failed for refs/heads/v1.
remote: error: This branch must not contain merge commits.
! [remote rejected] v1 -> v1 (protected branch hook declined)
error: failed to push some refs to xxx
我试图中止,但:
git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).
如何取消合并提交而不丢失本地更改?
2条答案
按热度按时间vxf3dgd41#
我可以通过取消提交来取消合并,并通过执行以下操作来保留本地更改:
git reset --soft HEAD~1
d4so4syb2#
我建议创建一个新的分支,因为下面的步骤可能会永久删除你的一些更改。同时,为以防万一,也要创建一个目录备份。
首先从当前分支 checkout 一个新分支,例如
git checkout -b my-new-branch
。然后将分支硬设置为合并到另一个分支之前分支上的最后一次提交:
git reset --hard <last commit reference, e.g. 134124124124>
.然后,您可以在合并提交之后,选择您在旧分支上所做的任何提交,例如
git cherry-pick 123123123
。