如何中止 Git 合并或变基
合并因冲突而停止,您想要退出。 git merge --abort 带您回到开始的地方。以下是每个停止操作的正确命令、每个操作保留的内容以及完成后要执行的操作。
撰写者 Kodmora
GitTree 背后的软件公司
- 合并
- 变基
- 撤消和恢复
- 合并冲突
在此页面上
要取消正在进行的合并,请运行 `git merge --abort`。 要取消变基,请运行 git rebase --abort。两者都将您的分支准确地放回到开始之前的位置。它们仅在操作停止时工作。提交合并后,无需中止任何操作,您需要 git reset 或 git revert。
哪个命令中止哪个操作?
首先运行 git status。它的第一行命名了正在进行的内容,并告诉您需要哪个命令:
| 正在进行什么 | 取消 | 继续前进 |
|---|---|---|
| 合并 | git merge --abort | git commit 或 git merge --continue |
| 变基 | git rebase --abort | git rebase --continue 或 --skip |
| 樱桃采摘 | git cherry-pick --abort | git cherry-pick --continue |
| 恢复 | git revert --abort | git revert --continue |
来自 git am 的补丁 | git am --abort | git am --continue |
如何中止合并?
git status
# You have unmerged paths.
git merge --abort
git status
# nothing to commit, working tree clean这也适用于因冲突而停止的 git pull 后,因为拉取是先获取然后合并。如果您的拉取设置为变基,请改用 git rebase --abort。
如何中止变基?
git rebase --abort即使某些提交已经重播,分支也会返回到变基开始之前的位置。要停止但保持到目前为止在分离的 HEAD 上重播的提交,请使用 git rebase --quit,然后决定保留哪些内容。如果不再需要某个提交,则 git rebase --skip 会将其删除并继续。
为什么 Git 说“没有可以中止的合并”?
fatal: There is no merge to abort (MERGE_HEAD missing).- 合并已完成。 阅读
git log -3。如果存在合并提交,请按如下所示撤消它。 - 它是变基或樱桃选择。
git status命名真正的操作。使用它从表中中止。 - 冲突来自 `git stash pop`。 这不是合并。运行
git reset --merge来清除它们。藏品被保留,所以没有任何损失。
如何撤消已经完成的合并?
如果您没有推送它,请将分支移回原处。 Git 将合并前的位置保存在 ORIG_HEAD 中:
git reset --hard ORIG_HEAD该命令会放弃未提交的更改,因此请先检查 git status。如果您已推送它,请通过恢复提交保持历史记录完整,如如何恢复合并提交中所述:
git revert -m 1 <merge-sha>如何撤消已经完成的变基?
在 reflog 中找到 rebase 之前的提交并重置为它:
git reflog
# 7c1d9ab HEAD@{4}: rebase (start): checkout main
# 3e52f10 HEAD@{5}: commit: add search box
git reset --hard HEAD@{5}选择位于 rebase (start) 行之前的条目。 撤消重置、变基或提交 更详细地介绍了这一点。
我应该中止还是解决冲突?
当您合并错误的分支、有未提交的工作或想要重新考虑该方法时中止。中止不需要任何费用,您可以随时重新开始。当冲突很少并且你了解双方时就解决。 如何解决合并冲突 显示如何读取标记。
如何中止 GitTree 中的合并或变基
阅读横幅
图表上方的横幅命名了操作,例如将功能/搜索合并到开发中,以及剩余的冲突数量。
选择中止
按横幅中的 Abort...。如果您改变主意,请“解决”并“继续”坐在旁边。
确认
对话框 中止操作? 说明它删除的内容。按中止。 GitTree 首先将其删除的内容保存在恢复快照中,因此 撤消 可以将其恢复。

请参阅继续、跳过或中止操作了解每种情况,并参阅继续、跳过和中止课程进行练习。
常见问题
git merge --abort 会删除我的更改吗?
它会删除合并的更改以及您迄今为止所做的任何冲突解决方案。您在合并之前提交的工作是安全的。合并之前未提交的更改可能不会干净地返回,因此在合并之前提交或存储。
git merge --abort 和 git reset --merge 有什么区别?
git merge --abort 是退出合并的正常方式,当合并正在进行时,它会为您运行 git reset --merge。当冲突来自其他原因时,例如 git stash pop,请直接使用 git reset --merge。
如何中止 git pull?
因冲突而停止的拉取是合并或变基。运行 git status 查看哪个,然后使用 git merge --abort 或 git rebase --abort。
解决一些冲突后我可以中止合并吗?
是的,直到你提交为止。 git merge --abort 也会丢弃分辨率,因此如果再次合并,您将从头开始。打开 git rerere 会让 Git 记住它们。
git rebase --quit 是做什么的?
它会停止变基而不将 HEAD 移回,让您继续重播到目前为止的提交。 git rebase --abort 几乎在所有情况下都是您想要的。
来源
有关其他产品的声明已根据其位于 2026年11月7日 的官方页面进行了检查。价格和功能发生变化;供应商的页面是事实的来源。
