提示 "You have not concluded your merge (MERGE_HEAD exists)" 怎么办

该提示说明上一次合并未完成(冲突未解决完或没提交)。git status 查看冲突文件,解决后 git add + git commit 完成合并;不想合了用 git merge --abort 中止。

最佳实践
Git 提交历史与版本恢复示意

含义:你正处于"合并进行中"的状态——上次 merge 因冲突暂停,Git 在等待你解决并提交。此时很多操作(checkout、pull)都会被这个提示挡住。两条出路:解决完提交,或 git merge --abort 放弃。

出路一:完成合并

git status                  # 看哪些文件冲突(Unmerged paths)
vim 冲突文件                 # 解决 <<<<<<< 标记
git add 冲突文件
git commit                  # 完成合并(信息已预填)

出路二:放弃合并

git merge --abort           # 回到合并前状态

避免再次卡住的预防

  • 合并前确保工作区干净(git status);
  • 冲突多时别拖太久——合并状态期间工作区是"半成品",容易误操作;
  • 用 IDE 的合并工具(VS Code 三路合并视图)降低解决冲突的心智负担。

常见问题(FAQ)

Q:.git/MERGE_HEAD 文件是干嘛的?

它就是"合并进行中"的标记文件,记录了正在合入的提交。git merge --abort 会删除它;手工删文件也能强制退出合并状态,但可能导致索引不一致——优先用 --abort。

Q:cherry-pick / revert 卡住也报类似提示?

对,对应中止命令是 git cherry-pick --abort 和 git revert --abort。原理相同(CHERRY_PICK_HEAD 文件)。

Q:解决冲突后忘了 add 就 commit?

Git 会拒绝并提示还有 unmerged 路径。必须 git add 标记已解决后才能提交。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台