Git 幽灵冲突问题解决
一、背景
什么是幽灵冲突?
- A、B 同时改同一文件的不同逻辑,本无冲突,但一方提交前格式化了代码(空白行、缩进等),merge 时出现大量仅因空白产生的冲突,diff 错行后容易选错 merge 版本,导致功能异常
二、解决方案
1. 定期格式化
上线分支定期格式化,避免格式遗漏
2.本地 Git 配置(本地环境)
执行如下指令,merge 时忽略行尾空白、空行等变化,减少幽灵冲突
git config --global merge.ignoreSpaceChange true
3.Pre-commit 自动格式化
已更新配置 lint-staged,提交前会自动对暂存文件执行 eslint –fix + prettier,保证每次提交风格一致,新增修改不会引入格式问题