跳至内容
GitTree
Git 指南阅读 1 分钟

如何中止 Git 合并或变基

合并因冲突而停止,您想要退出。 git merge --abort 带您回到开始的地方。以下是每个停止操作的正确命令、每个操作保留的内容以及完成后要执行的操作。

撰写者 Kodmora

GitTree 背后的软件公司

已更新
  • 合并
  • 变基
  • 撤消和恢复
  • 合并冲突
在此页面上

要取消正在进行的合并,请运行 `git merge --abort`。 要取消变基,请运行 git rebase --abort。两者都将您的分支准确地放回到开始之前的位置。它们仅在操作停止时工作。提交合并后,无需中止任何操作,您需要 git reset 或 git revert。

哪个命令中止哪个操作?

首先运行 git status。它的第一行命名了正在进行的内容,并告诉您需要哪个命令:

每个操作的中止命令
正在进行什么取消继续前进
合并git merge --abortgit commit 或 git merge --continue
变基git rebase --abortgit rebase --continue 或 --skip
樱桃采摘git cherry-pick --abortgit cherry-pick --continue
恢复git revert --abortgit revert --continue
来自 git am 的补丁git am --abortgit 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 中的合并或变基

  1. 阅读横幅

    图表上方的横幅命名了操作,例如将功能/搜索合并到开发中,以及剩余的冲突数量。

  2. 选择中止

    按横幅中的 Abort...。如果您改变主意,请“解决”并“继续”坐在旁边。

  3. 确认

    对话框 中止操作? 说明它删除的内容。按中止。 GitTree 首先将其删除的内容保存在恢复快照中,因此 撤消 可以将其恢复。

从图表上方的横幅中止 GitTree 中已停止的合并。
从图表上方的横幅中止 GitTree 中已停止的合并。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日 的官方页面进行了检查。价格和功能发生变化;供应商的页面是事实的来源。