在git提交后取消git合并

af7jpaap  于 2022-12-10  发布在  Git
关注(0)|答案(2)|浏览(221)

我在分支上做了一些修改,我获取了修改并运行了'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).

如何取消合并提交而不丢失本地更改?

vxf3dgd4

vxf3dgd41#

我可以通过取消提交来取消合并,并通过执行以下操作来保留本地更改:
git reset --soft HEAD~1

d4so4syb

d4so4syb2#

我建议创建一个新的分支,因为下面的步骤可能会永久删除你的一些更改。同时,为以防万一,也要创建一个目录备份。
首先从当前分支 checkout 一个新分支,例如git checkout -b my-new-branch
然后将分支硬设置为合并到另一个分支之前分支上的最后一次提交:git reset --hard <last commit reference, e.g. 134124124124> .
然后,您可以在合并提交之后,选择您在旧分支上所做的任何提交,例如git cherry-pick 123123123

相关问题