在从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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐