You have not concluded your merge (MERGE_HEAD exists)

You have not concluded your merge (MERGE_HEAD exists)

技术背景

当在使用 Git 进行版本控制时,若之前的拉取操作未能自动合并,进入冲突状态,且在下次拉取前冲突未得到妥善解决,就会出现 You have not concluded your merge (MERGE_HEAD exists) 错误提示。

实现步骤

撤销合并并重新拉取

  • Git 版本 1.7.4 及以上:使用 git merge --abort 撤销合并。
  • Git 旧版本:使用 git reset --merge 撤销合并。

解决冲突

手动编辑冲突文件,解决其中的冲突内容。

提交合并

解决冲突后,使用 git add 添加修改后的文件,然后使用 git commit 提交合并。

重新拉取

执行 git pull 进行拉取操作。

核心代码

撤销合并

1
2
git merge --abort  # Git 版本 1.7.4 及以上
git reset --merge # Git 旧版本

提交合并

1
2
git add <file>
git commit -m "commit message"

重新拉取

1
git pull origin <branch_name>

其他可能用到的命令

1
2
3
4
5
6
7
8
9
10
11
# 删除 MERGE 相关文件
rm -rf .git/MERGE*

# 强制重置到远程分支
git reset --hard origin/<branch_name>

# 继续合并(Git 2.12 及以上)
git merge --continue

# 放弃 cherry-pick 操作
git cherry-pick --abort

最佳实践

  • 在进行合并操作前,先使用 git status 查看当前仓库状态,了解冲突情况。
  • 确保有合适的差异工具(如 DIFFMERGE),方便解决冲突。
  • 若遇到问题,可参考 Git - Basic Merge Conflicts 了解基本的合并冲突解决方法。

常见问题

撤销合并失败

git merge --abort 无效,可尝试使用 git merge --continue 继续合并,或使用 git reset --hard 强制重置到某个版本。

解决冲突并提交后仍报错

若在 git push 时仍收到 All conflicts fixed but you are still merging. (use "git commit" to conclude merge) 错误,可尝试删除 .git/MERGE* 文件,然后重新拉取和推送。

1
2
3
rm -rf .git/MERGE*
git pull origin <branch_name>
git push origin <branch_name>

提交相同信息的提交导致问题

若有两个提交信息相同,可使用 git add . 暂存所有修改,然后使用 git commit -m "New commit message" 提交新的提交信息。


You have not concluded your merge (MERGE_HEAD exists)
https://119291.xyz/posts/git-merge-conflict-resolution-guide/
作者
ww
发布于
2025年5月26日
许可协议