跳到正文

代码冲突

Merge Conflict

中级通用

代码冲突(Merge Conflict)是 Git 合并不同修改时,无法自动决定某处该保留哪种结果的情况。它让你停下来核对双方意图,避免把其中一方的改动直接覆盖掉,例如两人分别改了同一段登录提示文案。

你可能会说:「我和 AI 都改了登录页,合并时卡住了,想保留两边有用的修改。」

读之前建议先了解

动手看看

main当前所在 HEADfeature/copy搭建登录页添加登录提示main · HEAD
1

登录页已经有一句提示文案。接下来,产品和设计会从同一个提交出发,分别调整这句话。

要点

  1. 1

    冲突不等于改了同一文件

    你和同事都改了登录页文件,Git 仍可能自动合并,因为修改落在不同位置。冲突通常出现在两边的改动互相影响,Git 无法确定最终内容时;一边删除文件、另一边修改文件,也可能产生冲突。

  2. 2

    先弄清两边为什么要改

    冲突位置会告诉你 Git 卡在哪里,却不会告诉你哪种产品行为才对。比如一边改了按钮文案,另一边调整了登录流程,你得结合需求看:是保留其中一边,还是把两边的意图重新写成一份代码。

  3. 3

    解决后还要验证结果

    你把文件改成想要的最终内容,再标记冲突已解决,才能继续合并流程。这样只表示 Git 可以往下走,不代表功能正确;让 AI 协助处理后,我们还要检查差异,并运行相关测试或手动走一遍流程。

容易混淆的地方

代码冲突和差异对比不是一回事:差异对比只是展示哪些内容变了,代码冲突则是 Git 无法自动确定合并结果,需要你介入。它也不等于程序运行时报错;代码即使顺利合并,仍可能出现逻辑问题,比如新登录流程与旧权限判断不兼容。

什么时候用

适合用

  • 你在合并 AI Agent 的功能分支时,发现它和你都改了登录页同一处逻辑,需要决定最终行为。
  • 你拉取团队的新提交后继续合并,发现一边删除了旧组件,另一边还在修改它,需要确认替代方案。
  • 你整理分支提交时遇到冲突,想让 Agent 解释双方改动意图,再由你确认如何整合。

不适合用

  • 你只想看 AI 改了哪些文件,还没有进行合并;用差异对比查看修改更直接。
  • 你本地有未提交修改,Git 提示切换分支会覆盖它们;先提交或暂存改动,而不是按代码冲突处理。
  • 网站上线后才发现登录失败,但 Git 合并已完成;先查报错、日志和测试结果,定位运行问题。

练一练

你和 AI Agent 分别在两个分支修改了登录页。合并时 Git 标出了冲突,但两边改动分别对应新的文案和新的登录规则。你接下来怎么做?

让 AI 帮你做

请帮我处理这次 Git 代码冲突。先说明冲突文件中双方分别改了什么、可能想实现什么,不要直接丢弃任一方的改动;给出建议的最终代码和取舍理由。修改后列出你检查过的差异与测试结果,拿不准的产品行为先问我。

接下来学什么