GitHub

Git换行符统一:Windows和Linux协作时减少整文件差异

资料核对与更新:2026-10-27 · 阅读约2分钟

没有改动逻辑却出现整文件变更,可能来自换行符。本文介绍仓库级规则、归一化操作和二进制文件的保护。

Git提交与分支工作流示意
Git提交与分支工作流示意;作者:Felipe Aníbal Nunesb Brito;许可:CC0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

提交里整份文件都变了,实际却只改一行,先检查是否发生 LF 与 CRLF 转换。换行规则没有统一,会增加审查噪声,也更容易把真正的逻辑改动藏在大量差异里。

优先维护仓库规则

在仓库根目录使用 .gitattributes,明确哪些是文本、哪些需要固定行尾。例如脚本通常采用 LF,特定 Windows 文件可按项目要求使用 CRLF。图片、压缩包等二进制资源要避免被当成文本转换。

归一化单独提交

调整规则前先保证工作区干净,并保存未完成的修改。归一化后仔细查看差异,确认没有把文件内容、编码和业务逻辑一起改变。把纯行尾修复独立成一次提交,方便审查和必要时回退。

排查编辑器与个人设置

仓库规则之外,还要核对编辑器保存设置和个人 Git 配置。不要让自动保存每次都把规则反向改回。新成员克隆后可检查一个脚本文件和一个普通文本,确认检出结果符合项目约定。

不要把所有差异都归因于换行符。字符编码变化、格式化和文件权限改变也会造成看似异常的提交。验收应同时看内容差异与脚本能否运行,尤其关注 Linux 上执行脚本时出现的异常解释器路径。

参考资料

资料核对:2026年10月27日。本文为文档综合与操作建议,未宣称完成本站实测。

GitHub 行尾配置

Git switch 手册

本文新增价值
围绕Git换行符统一整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。