Do more! Do better!

git warning:LF will be replaced by CRLF in ××××.××

Posted on By zjk

在使用git的时候,每次执行

git add .

都会提示这样一个警告消息:

warning: LF will be replaced by CRLF in XXXXXX

一直都没管这个问题,似乎也没什么影响,时间久了还是觉得不舒服,所以研究了一下。

报错含义

LF:Line Feed 换行

CRLF:Carriage Return Line Feed 回车换行键

不同操作系统处理行尾结束符的方法

  windows下:CRLF(表示句尾使用回车换行两个字符,即windows下的”\r\n”换行)

   unix下:LF(表示句尾,只使用换行)

   mac下:CR(表示只使用回车)

Git下处理“换行”(line ending)

  core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,inout。

(1)设置为true【config –global core.autocrlf true】

  当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。它将把crlf变成LF。

(2)设置为false【config –global core.autocrlf false】

  当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。

(3)设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。

总结

综上,出现上面那个警告的原因是:

  windows中的换行符为CRLF,而Linux下的换行符为LF(使用Git命令行Git Bash,实际上就是相当于linux环境),所以在执行git add xxx.xx操作时,会出现这个错误提示!

禁用自动转换:

git config --global core.autocrlf false