在团队协作开发中,Git 合并冲突(Merge Conflict)是每位开发者都会遇到的“必经之路”。它并非系统错误,而是 Git 无法自动判断哪段代码更优先时的安全机制。面对红色的报错信息,许多初学者容易感到焦虑,但掌握一套清晰的解决流程,就能将其转化为展示代码掌控力的机会。本文将通过步骤清单的方式,带你快速定位并优雅地解决合并冲突。
第一步:精准定位冲突文件
当执行 git merge、git pull 或 git rebase 命令时,如果终端输出包含 "CONFLICT" 字样,说明合并过程受阻。此时,首要任务不是盲目修改代码,而是确认哪些文件卷入了冲突。你可以使用以下命令查看状态:
git status 在输出结果中,寻找标记为 both modified 的文件。这些文件就是冲突的源头。例如,如果看到 index.html 被列为冲突文件,这意味着你和另一位开发者同时修改了该文件的相同区域,而 Git 不知道保留谁的版本。记录下这些文件名,它们是你接下来需要重点关注的对象。切勿忽略这一步,直接打开编辑器可能会导致你遗漏某些隐蔽的冲突点。
第二步:理解冲突标记与内容
使用文本编辑器或 IDE 打开冲突文件,你会看到特殊的标记符号。Git 使用 <<<<<<< 作为冲突起始标记,======= 作为分隔符,以及 >>>>>>> 作为结束标记。结构通常如下:
<<<<<<<< HEAD
当前分支的代码内容
=======
对方分支的代码内容
>>>>>>>> feature-branch 理解这个结构至关重要:HEAD 下方是你的本地修改,feature-branch(或其他分支名)下方是引入的远程修改。中间的分隔线将两者分开。你的任务是阅读这两段代码,决定最终保留哪部分,或者如何将它们融合在一起。切记,不要删除任何标记符号,直到冲突完全解决。错误的删除会导致语法错误或逻辑混乱。
第三步:手动修复并提交
根据业务逻辑和代码规范,手动编辑文件以消除冲突。常见的策略有三种:完全采用本地代码、完全采用远程代码,或进行混合修改。例如,如果双方都添加了新功能,可能需要保留两者的功能并调整接口参数。确保代码逻辑连贯后,保存文件。
修复完成后,需要将文件重新加入暂存区,告诉 Git 冲突已解决:
git add <conflicted-file-name> 可以使用 git diff 再次检查是否还有残留的冲突标记,确保清理彻底。最后,完成合并操作:
git commit -m "解决合并冲突" 如果是 git rebase 导致的冲突,修复后需执行 git rebase --continue。至此,冲突正式解除。建议养成习惯,定期同步远程仓库(git pull),避免累积大量变更导致冲突复杂化。通过规范化流程和保持沟通,合并冲突将从阻碍变为协作的桥梁。