少用少见的 - 合并报错

  • 作者:KK

  • 发表日期:2020.07.14


CONFLICT (content): Merge conflict in XXX文件

经典,就是合并的时候发生了文件冲突,如果你会解决冲突就略过,如果不会解决冲突,或不想解决冲突,那就执行以下命令来取消合并:

git status #新手建议先看看修改状态哈
git merge --abort #停止合并,它会把一些涉及合并的文件变更取消掉
git status #确认文件状态恢复了以前的样子

另外一条路就是解决冲突,我是 Windows 下的开发者,建议用这样的方案:

  1. 确认已经安装 TortoiseGit,然后在项目目录下右键选择 TortoiseGit 的提交,会列出修改和冲突的文件(红色),右键红色的文件弹出冲突编辑器,这个可视化的冲突编辑器我觉得比较友好(除了没有代码上色),这里就不细说怎么解决了,搜索【TortoiseGit 解决冲突】查教程吧。

  2. 熟悉解决冲突的话可以用IDE的提示引导来解决,不同IDE有不同的展示方式,差不到哪去。

  3. 更熟手的人可能会直接手动编辑代码了,这些人我就不用多说怎么弄了他们懂,建议大家不要随便用编辑方案。

解决后再提交就行了,具体还是要看教程,这里主要是告诉不熟悉的朋友用什么思路解决合并冲突的状态。


error: You have not concluded your merge (MERGE_HEAD exists)

有时候pull下来的代码会导致合并器自动合并失败,一般是因为太久没pull了,中间有很多很多提交,特定的内容组织下合并器理不清细节,可以先尝试这套操作:

git merge --abort #停止合并
git reset --merge #重置当前的合并状态
git reset HEAD .
git checkout .
git clean -fd #会清除未加入仓库的所有文件,需要保留的文件请先存到别处
git pull

有可能还不行,再试这个做法:

git fetch -all
git reset --hard origin/xxx
git fetch
git pull