文本文件的换行符在不同系统是不一样的,Linux/MAC 使用的是 LF(\n),但 Windows 使用 CRLF(\r\n)作为换行符。
构建,测试和生产环境一般都是在Linux环境下,Windows环境下开发的代码,通过git提交代码到Linux环境时,因此会遇到换行符问题。

前提是default ide配置,也就是 windows

解决方案:
1)一般是在git windows install 的时候,选择如下设置
Windows系统git换行符问题_第1张图片

2) git windows安装之后,可以配置下面两个参数:
git config --global core.autocrlf true
true 表示检出是转换CRLF, 提交时转换为 LF
input 表示检出是不转换,提交时转换为 LF
false 表示不做转换

git config --global core.safecrlf true
true 表示不允许提交时包含不同换行符
warn 则只在有不同换行符时警告
false 则允许提价时有不同换行符存在
也可以通过修改~/.gitconfig
[core]
autocrlf = false --->true
safecrlf = true



为了进一步限制团队开发中换行符问题(没有以上git设置的代码提交),可以在git repo中添加 .gitattributes,

#Auto detect text files and perform CRLF--->LF normalization
* text=auto

参考

  1. GitHub 第一坑:换行符自动转换 https://github.com/cssmagic/blog/issues/22