全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-11 5 分钟 ✍️ juanwangdev

git abort 中止合并

合并发生冲突时,可以使用 abort 命令中止合并,恢复到合并前的状态。

基本用法

Bash
# 中止 merge
git merge --abort

# 中止 rebase
git rebase --abort

# 中止 cherry-pick
git cherry-pick --abort

中止合并场景

场景说明
冲突太复杂一时无法解决,先中止
需要更多信息了解对方修改意图后再合并
操作失误合入了错误的分支
时间紧迫暂时中止,稍后处理

merge --abort 示例

Bash
# 合并发生冲突
$ git merge feature
CONFLICT (content): Merge conflict in src/main.go
Automatic merge failed; fix conflicts and then commit the result.

# 查看状态
$ git status
On branch main
Merging branch 'feature'
You have unmerged paths.

# 中止合并
$ git merge --abort

# 状态恢复
$ git status
On branch main
nothing to commit, working tree clean

rebase --abort 示例

Bash
# rebase 发生冲突
$ git rebase main
CONFLICT (content): conflict in src/utils.go

# 中止 rebase
$ git rebase --abort

# 恢复到 rebase 前的状态

cherry-pick --abort 示例

Bash
# cherry-pick 冲突
$ git cherry-pick abc123
error: could not apply abc123...

# 中止 cherry-pick
$ git cherry-pick --abort

abort 效果对比

操作abort 后状态
merge --abort回到合并前,工作区干净
rebase --abort回到 rebase 前,提交不变
cherry-pick --abort回到 cherry-pick 前

abort vs reset

Bash
# abort:干净地取消操作
git merge --abort
# 工作区恢复到操作前状态

# reset:手动回退
git reset --hard HEAD
# 也会恢复,但 abort 更安全

何时使用 abort

推荐使用不推荐使用
冲突刚发生时已解决部分冲突
需要重新规划合并策略已投入大量解决时间
合入了错误分支只剩少量冲突

注意事项

Bash
# abort 前确认
# 已解决的冲突会被丢弃!

# 如果已解决部分冲突但想保留
# 建议用 stash
git stash
git merge --abort
git stash pop  # 恢复解决内容

无法 abort 的情况

Bash
# 如果合并前有未提交的变更
# abort 可能无法完全恢复

# 建议:合并前确保工作区干净
git status
git stash  # 暂存变更
git merge feature

abort 是安全的取消方式,工作区恢复到操作前状态。

要点总结

  1. git merge --abort 中止合并
  2. git rebase --abort 中止 rebase
  3. git cherry-pick --abort 中止 cherry-pick
  4. abort 后工作区恢复到操作前状态
  5. 合并前保持工作区干净,便于 abort

📝 发现内容有误?点击此处直接编辑

← 上一篇 git status 查看状态
下一篇 → git mergetool 使用合并工具
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库