网络宝典
第二套高阶模板 · 更大气的阅读体验

Git合并冲突状态怎么清除?手把手教你搞定

发布时间:2026-04-16 04:30:26 阅读:1 次

Git 做协作开发时,一不小心就遇到「合并冲突」——文件上标着红色感叹号,命令行跳出一堆 CONFLICT 提示,连 git status 都显示一堆 both modified。别慌,这不是代码坏了,只是 Git 在提醒你:这两份修改它不敢擅自做主,得你来拍板。

先搞清:什么是「冲突状态」?

Git 的「冲突状态」不是错误,而是一种中间态:它已暂停合并流程,把双方改动都保留在工作区和暂存区里,等着你手动处理。这时候执行 git status,会看到类似这样的提示:

Unmerged paths:
  (use "git add <file>" to mark resolution)
	both modified:   src/utils.js

注意关键词:Unmerged pathsboth modified —— 这就是典型的冲突待处理状态。

三步清除冲突状态(不丢代码)

第一步:打开冲突文件,找标记段落
Git 会在冲突文件里插入三段特殊标记:

<<<<<< HEAD
console.log('这是本地分支的改动');
=======
console.log('这是要合并进来的改动');
>>>>>> feature/login

其中 <<<<<< HEAD======= 是你当前分支的内容,=======>>>>>> 是对方分支的内容。删掉标记行,只保留你想要的代码(可以全留、全删、或混合改写)。

第二步:标记为已解决
改完保存后,在终端运行:

git add src/utils.js

这时再执行 git status,那行 both modified 就消失了,变成绿色的 modified: src/utils.js,说明 Git 已认可你的选择。

第三步:继续合并或提交
如果是在执行 git merge 中断后清理的,直接运行:

git commit

Git 会自动弹出默认提交信息(比如 Merge branch 'feature/login'),保存退出即可完成合并。如果只是想放弃这次合并,用:

git merge --abort

它会一键退回合并前的状态,所有冲突标记、未暂存改动都会被清除干净。

常见误区提醒

❌ 直接删掉整个冲突文件再 git add —— 这样会丢失对方分支的改动;
❌ 只改了代码但忘了 git add —— 冲突状态不会消失;
❌ 执行 git reset --hard 强刷 —— 可能误删自己刚写的修改。

✅ 记住口诀:看标记 → 改内容 → git add → git commit 或 git merge --abort

小技巧:VS Code 打开冲突文件时,底部状态栏会直接出现「Accept Current Change」「Accept Incoming Change」等按钮,点几下就能快速选边,比手动删标记快得多。