在从git上clone项目时,用vscode打开项目,发现报了好多错误,发现是由于windows下,使用vscode默认打开的格式为CRLF,而克隆的项目必须为LF格式,于是就开始查询LF与CRLF的区别,以及如何转换。
介绍LF和CRLF
CRLF: 是carriagereturnlinefeed的缩写。中文意思是回车换行。
LF: 是line feed的缩写,中文意思是换行。
CR: 是carriagereturn的缩写。中文意思是回车。
为什么换行回车会引出这么多的问题呢,主要的原因在于操作系统之间的分歧:
早期的mac系统使用CR当做换行,现在也已经统一成了LF
Unix(包含现在大量使用的linux)系统使用LF
windows系统使用LFCR当做换行
也正是因为不同系统的分歧,在多人协作共同开发的时候,可能导致提交代码时候产生问题。
git为了防止以上问题扰乱跨平台合作开发,使用命令可以转化LF和CRLF
具体体现为:
git config --global core.autocrlf true
Git可以在你push时自动地把行结束符CRLF转换成LF,而在pull代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF
git config --global core.autocrlf input
Linux或Mac系统使用LF作为行结束符;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在push时把CRLF转换成LF,pull时不转换
git config --global core.autocrlf false
在本地和代码库中都保留CRLF,无论pull还是push都不变,代码库什么样,本地还是什么样子
参考:https://www.jianshu.com/p/dd7464cf32b5