不同系统使用的换行符不一样,UNIX/Linux ,Mac OS使用 0x0A(LF)作为换行符,Windows 使用 0x0D0A(CRLF) 作为换行符。
在跨平台开发时,换行符发生改变,Git 会认为整个文件被修改,这就造成我们没法diff,我们可以通过配置autocrlf用于在提交和检出时自动转换换行符。
# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
# 提交检出均不转换
git config --global core.autocrlf false
另一个配置项safecrlf用于检查文件是否包含混合换行符。
# 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
# 允许提交包含混合换行符的文件
git config --global core.safecrlf false
# 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn