Git 怎么解决合并冲突?

merge 或 rebase 时出现 CONFLICT,不知道怎么处理

解决方案

手动解决冲突 推荐

# 1. 查看冲突文件
git status

# 2. 编辑冲突文件,删除标记
# <<<<<<< HEAD
# 你的修改
# =======
# 对方的修改
# >>>>>>> branch-name

# 3. 保留正确内容后
git add <冲突文件>
git commit  # merge 时
# 或
git rebase --continue  # rebase 时

打开冲突文件,找到 <<<< ==== >>>> 标记,决定保留哪部分(或合并两部分),删除标记后暂存并继续。

适用场景:大多数冲突场景

使用可视化工具

git mergetool

打开配置的合并工具(VS Code、Beyond Compare 等)进行可视化冲突解决。

适用场景:冲突复杂,文本编辑器不够直观

放弃合并

git merge --abort
# 或
git rebase --abort

完全放弃这次合并/rebase,回到操作前的状态。

适用场景:冲突太多,想换个策略

直接选择某一方

# 保留我方版本
git checkout --ours <file>
# 保留对方版本
git checkout --theirs <file>
git add <file>

整个文件选择保留某一方的版本,不做逐行合并。

适用场景:确定某一方的版本是完全正确的

注意事项

解决冲突后一定要测试代码是否正常运行
不要随意选择 --ours 或 --theirs,可能丢失重要修改

相关命令