在git提交后取消git merge



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

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

我可以通过取消提交来取消合并,并通过以下操作来保留本地更改:

git reset --soft HEAD~1

我建议创建一个新的分支,因为下面的步骤可能会永久删除您的一些更改。也要创建一个目录的备份,以防万一。

首先从当前分支签出一个新分支,例如git checkout -b my-new-branch

然后硬设置你的分支在你合并到另一个分支之前的最后一次提交:git reset --hard <last commit reference, e.g. 134124124124>

然后你可以在合并提交后选择你在旧分支上所做的任何提交,例如git cherry-pick 123123123

最新更新