Git 合并分支时为什么会冲突,怎么解决?

玉鑫 阅读 5

我从 main 切了个新分支改了个按钮样式,同事也在 main 上改了同一个文件,现在我切回 main 执行 git merge 时报冲突了,一脸懵。

我本地改的代码其实很简单,就加了个 class:

<button class="btn-primary">
  提交
</button>

但合并时 Git 提示这个文件有冲突,还出现了 <<<<<< HEAD 这种标记,不知道该保留哪边的代码,也不敢乱删……有没有人遇到过类似情况?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
妍妍 Dev
遇到这种情况挺常见的,尤其是当多个开发者同时修改同一个文件的不同部分时。Git 会标记出冲突的部分,让你手动决定怎么处理。你提到的情况就是典型的例子。

Git 在冲突的地方会插入一些标记,比如 <<<<<<< HEAD======= 来告诉你哪些部分是冲突的。HEAD 代表的是你当前所在的分支(这里是 main),而 ======= 之后的部分则是你尝试合并进来的分支的内容。

假设你的改动是这样的:
<button class="btn-primary">
提交
</button>


而同事的改动可能是:
<button class="btn-success">
提交
</button>


那么合并时,Git 会在文件中插入类似这样的标记:
<<<<<<< HEAD
<button class="btn-primary">
=======
<button class="btn-success">
>>>>>>> 分支名
提交
</button>


你需要手动编辑这个文件,选择保留哪一部分或者合并两者。比如你可以这样修改:
<button class="btn-primary btn-success">
提交
</button>


或者如果你确定只需要保留自己的改动,那就删掉其他标记和同事的代码部分:
<button class="btn-primary">
提交
</button>


改完之后,记得保存文件,然后告诉 Git 冲突已经解决:
git add 文件名
git commit


这样就完成了合并。记住,解决冲突是个需要耐心的过程,慢慢来,多检查几次,确保改动符合预期。
点赞
2026-03-20 21:09