一、不同操系统下的换行符

CR回车 LF换行 Windows/Dos CRLF \r\n Linux/Unix LF \n MacOS CR \r

二、解决方法

打卡git bash,设置 core.autocrlf 和 core.safecrlf(可不设置),建议设置 autocrlf 为input,safecrlf 为true,同时设置你的 Eclipse、IDEA等IDE的换行符为LF\n。 下面为参数说明,--global表示全局设置

解释下两个参数的不同含义

2.1、autocrlf

#提交时转换为LF,检出时转换为CRLF git config --global core.autocrlf true

#提交时转换为LF,检出时不转换 git config --global core.autocrlf input

#提交检出均不转换 git config --global core.autocrlf false

2.2、safecrlf

#拒绝提交包含混合换行符的文件 git config --global core.safecrlf true

#允许提交包含混合换行符的文件 git config --global core.safecrlf false

#提交包含混合换行符的文件时给出警告 git config --global core.safecrlf warn

所以,如果我们使用的是 虚拟机(vagrant,或其他)+ win10 宿主机 的开发配置,那么只需设置下两条命令就行了:

git config --global core.autocrlf true

git config --global core.safecrlf false

若不这么做,则 git 会把一些未修改过的文件显示为被修改(认为换行符不同属于“修改”),这样做可以避开 git 频繁提醒。