https://www.cnblogs.com/helloHKTK/p/7351946.html

https://blog.csdn.net/leedaning/article/details/53024162


Windows下Git使用报错:

复制代码

warning:LF will be replaced by CRLF in ××××.××(文件名)
The file will have its original line ending in your working directory.

翻译:
在xxx.xx文件中LF将被CRLF替换。
在工作区(working directory)里,这个文件将会保持它原本的换行符。(line ending:行尾,换行)

复制代码

 

 注解:

          LF:Line Feed 换行

          CRLF:Carriage Return Line Feed 回车换行键

1、不同操作系统下,处理行尾结束符的方法是不同的

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

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

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

2、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操作时,会出现这个错误提示!

解决方法:(注意:会删仓库!会删仓库!会删仓库!)

  <1>删除.git   【rm -rf .git

  <2>禁用自动转换,即将设置:git config --global core.autocrlf false

         再重新初始化,并执行添加add操作:

  <3>【git init

  <4> 【git add xxx.xx


也可以进入当前用户的主目录(通常 XP 的用户目录是 C:\Documents and Settings\当前用户名,在 Vista 和 Win7 下是C:\Users\当前用户名),用你最顺手的文本编辑器打开 .gitconfig 文件。在 [core] 区段找到 autocrlf,将它的值改为 false。如果没找到,就在 [core] 区段中新增一行:

    autocrlf = false12

如图:
这里写图片描述


普及知识:

不同系统下的换行符

CR、LF、CR/LF为不同操作系统上使用的换行符:

  • Windows/DOS系统:采用CR/LF表示下一行;

  • Unix/Linux系统:采用LF表示下一行;

  • Mac OS系统:采用CR表示下一行;

  • Mac OS X系统:采用LF表示下一行( Mac OS X已经改成和Unix/Linx一样使用LF )。

CR使用符号’\r’,十进制ASCII代码是13,十六进制代码为0x0D;LF使用’\n’符号表示,ASCII代码是10,十六制为0x0A。所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示,而UNIX和苹果平台上换行则是使用 0a 或 0d 一个字节表示。

Unix/Linux/Mac系统下的文件在Windows里打开的话(使用Windows自带记事本),会出现换行丢失,所有文字会变成一行,整个文本会乱成一团。Windows系统下的文件在Unix/Linux/Mac里打开的话,在每行的结尾可能会多出一个^M符号。

目前大部分的编辑器和IDE都支持这几种换行符(除了notepad),但是跨平台协作项目源码到底保存为哪种风格的换行符呢?输出的文本需要保存为哪种风格的换行符呢?Git提供了一个解决方案——在跨平台协作场景时,会提供一个“换行符自动转换”的功能。

Git CRLF

Git默认在提交时将Windows换行符(CRLF)转换为LF,在拉取时将UNIX换行符(LF)替换成CRLF。我们可以通过设置autocrlf和safecrlf来设置具体的操作。