问题描述:因为大家在用的时候,经常出现^M的问题,也就是\r\n的事情,导致很多脚本跑不通。道理上应该在编译服务器上做掉统一过滤,但是碰巧我的编译脚本也放在git上。。。所以干脆通过工具的方式在第一个环节就解决掉
测试情景:
a.txt 内容是a,行结尾\r\n
b.txt内容是b,行结尾\n
1. 提交检出均不转换
执行:git config --global core.autocrlf false
查看效果,重新检出:
和上传前,文件结束符一致
2. 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
查看效果,重新检出:
上传前,结尾是^M的文件,都被修正成了$
3. 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
查看效果,重新检出:
上传前,结尾是$的文件,都被修正成了^M
结论:
不允许使用:core.autocrlf=true
强烈建议:core.autocrlf=input
有洁癖的,但自己要保证文本正确,可以使用:core.autocrlf=false
ps:常用命令
git config --get core.autocrlf
git config --global core.autocrlf input