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,可能丢失重要修改