首页/开发/Git 与协作速查/git merge 忽略空白差异
合并变基与冲突71 条

git merge 忽略空白差异

跨平台协作时行尾与缩进差异会制造大量伪冲突,-X ignore-space-change / ignore-all-space 可在冲突判断时忽略空白变化。

Git 与协作速查开发更新于 2026-10-12
用途减少空白差异导致的冲突
语法git merge -X ignore-space-change <分支>
变体-X ignore-all-space 更激进

常用示例

常用示例
git merge -X ignore-space-change feature/format
git merge -X ignore-all-space feature/indent

从根源治理

从根源治理
# 仓库根放 .gitattributes 统一行尾
printf '*.text eol=lf
*.sh text eol=lf
' > .gitattributes
忽略空白只影响冲突判断,不改变内容;合并后运行格式化工具复核,别让空白策略掩盖真实逻辑改动。

易错点

  • 缩进敏感的 Python/YAML 项目里 ignore-all-space 可能吞掉有意义的缩进变化,审慎使用
  • 只治标不治本:跨平台团队应在 .gitattributes 统一行尾并配合编辑器配置

数据来源与参考

  • Git 官方文档:git-merge(ignore-space-change / ignore-all-space)
  • Git 官方文档:gitattributes(text/eol)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌