首先了解,CR是回车符,LF是换行符,在Windows中换行是CRLF,在Linux和Mac中换行是LF,所以在多平台开发的时候需要保证换行的统一。
Git中core.autocrlf项的作用便是统一换行,有三个值:
true
表示在提交时将CRLF转为LF,在检出时将LF转换为CRLF,适合Windows中使用,便于多平台开发,以LF为统一。false
表示什么都不做,适合单一平台,纯Windows中使用。input
表示在提交时将CRLF转换为LF,检出时什么都不做,适合纯Linux使用。比如,你在Linux中可能复制了Windows中的代码,出现了CRLF,但统一平台是Linux,就需要转换。
如果你想以CRLF为统一的话(很少见),要么大家都用Windows,core.autocrlf设置为false;要么在Linux中使用第三方工具将LF转为CRLF,单凭Git无法做到。
Windows中在使用Git的时候出现warning: LF will be replaced by CRLF
字样,原因在于,你将core.autocrlf的值设成了true
,说明检出的文件会变成CRLF,但此时你文件自身的换行又是LF(比如通过vi编辑),可能会引起误会(LF->CRLF),就会出现该提示。
如果本身就是CRLF,提交变为LF,检出又变为CRLF,这就很正常,不会引起误会。
该提示可以无视,继续进行提交。建议在core.autocrlf=true的情况下,换行应该使用CRLF,就可以避免该提示。