Windows下使用Git add时警告:warning:LF will be replaced by CRLF in ××××.××
2018-02-23 17:02
411 查看
Windows下Git使用报错:warning:LF will be replaced by CRLFin ××××.××(文件名)
LF:Line Feed 换行 \n
CRLF:Carriage Return Line Feed 回车换行\r\n
出现原因:
这是因为在Windows中的换行符为CRLF,而在Linux中的换行符为LF。在git创建的项目中换行符为LF,而gits是linux环境,Git自作聪明的“换行符自动转换”功能会自动进行转换,然后系统会提示LF将被转换为CRLF。
解决的办法很简单,禁止git的自动转换即可。
解决方法:
1、如果版本库/项目还没被创建,执行以下操作:
git config --global core.autocrlf false //在全局禁用自动转换
2、如果版本库/
ab2c
项目已经创建,使用非全局禁用自动转换
git config core.autocrlf false //在当前版本库中禁用自动转换
3、如果版本库/项目已经创建,在全局禁用自动转换则需要先删除之前创建的.git 文件后添加上面的设置。
此操作很坑!是删除整个.git,会把跟远程的链接都断掉,整个git的提交历史/版本库都会被删除!
rm -rf .git
git config --global core.autocrlf false //在全局禁用自动转换
完成后再重新执行git创建版本库操作:
git init
git add ...
git remote add ***
这样设置git的配置后在执行add操作就没有问题了。
问题分析:
1、不同操作系统下,处理行尾结束符的方法是不同的:
win下: CRLF \r\n(0x0D,0x0A)回车换行,表示句尾使用回车换行两个字符,
即windows下的"\r\n"换行,回车(CR,ASCII 13, \r)换行(LF, ASCII 10, \n)
unix下: LF \n(0x0A)换行(表示句尾,只使用换行)
mac下: CR \r (0x0D)回车
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操作系统下,不要使用这个设置。
3、综上,出现上面那个警告的原因是:windows中的换行符为CRLF,而Linux下的换行符为LF(使用Git命令行Git Bash,实际上就是相当于linux环境),所以在执行git add xxx.xx操作时,会出现这个错误提示!
拓展:
1、关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。
一个叫做“回车”(carriage return),告诉打字机把打印头定位到左边界;
另一个叫做“换行”(line feed),告诉打字机把打印头放到所要打印纸的下一行开头。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return;
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed;
符号 ASCII码 意义
\n 10 换行NL
\r 13 回车CR
Windows系统里,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即“\r”。
Unix系统里,每行结尾只有“<换行>”,即“\n”;
而分歧导致的直接后果是,
Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
2、软回车和硬回车
再扩展一下回车的一些知识。
硬回车就是普通我们按回车Enter产生的,它在换行的同时也起着段落分隔的作用。
软回车是用 Shift + Enter 产生的,它换行,但是并不换段,即前后两段文字在 Word 中属于同一“段”。在应用格式时你会体会到这一点。
软回车能使前后两行的行间距大幅度缩小,因为它不是段落标记,要和法定的段落标记——硬回车区别出来。硬回车的html代码是<p>..</p>,段落的内容就夹在里面,而软回车的代码很精悍:<br>。网页的文字如果复制到word中,则硬回车变为弯曲的箭头,软回车变为向下的箭头。
转载自: http://www.haowt.info/archives/403.html https://www.cnblogs.com/helloHKTK/p/7351946.html http://blog.csdn.net/fanwenbo/article/details/54848429 http://blog.jobbole.com/46200/
The file will have its original line ending in your working directory. 翻译: 警告:在xxx.xx文件中LF将被CRLF替换。 在你的工作区(working directory)里,这个文件将会保持它原本的换行符。(line ending:行尾,换行)CR:Carriage Return 回车\r
LF:Line Feed 换行 \n
CRLF:Carriage Return Line Feed 回车换行\r\n
出现原因:
这是因为在Windows中的换行符为CRLF,而在Linux中的换行符为LF。在git创建的项目中换行符为LF,而gits是linux环境,Git自作聪明的“换行符自动转换”功能会自动进行转换,然后系统会提示LF将被转换为CRLF。
解决的办法很简单,禁止git的自动转换即可。
解决方法:
1、如果版本库/项目还没被创建,执行以下操作:
git config --global core.autocrlf false //在全局禁用自动转换
2、如果版本库/
ab2c
项目已经创建,使用非全局禁用自动转换
git config core.autocrlf false //在当前版本库中禁用自动转换
3、如果版本库/项目已经创建,在全局禁用自动转换则需要先删除之前创建的.git 文件后添加上面的设置。
此操作很坑!是删除整个.git,会把跟远程的链接都断掉,整个git的提交历史/版本库都会被删除!
rm -rf .git
git config --global core.autocrlf false //在全局禁用自动转换
完成后再重新执行git创建版本库操作:
git init
git add ...
git remote add ***
这样设置git的配置后在执行add操作就没有问题了。
问题分析:
1、不同操作系统下,处理行尾结束符的方法是不同的:
win下: CRLF \r\n(0x0D,0x0A)回车换行,表示句尾使用回车换行两个字符,
即windows下的"\r\n"换行,回车(CR,ASCII 13, \r)换行(LF, ASCII 10, \n)
unix下: LF \n(0x0A)换行(表示句尾,只使用换行)
mac下: CR \r (0x0D)回车
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操作系统下,不要使用这个设置。
3、综上,出现上面那个警告的原因是:windows中的换行符为CRLF,而Linux下的换行符为LF(使用Git命令行Git Bash,实际上就是相当于linux环境),所以在执行git add xxx.xx操作时,会出现这个错误提示!
拓展:
1、关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。
一个叫做“回车”(carriage return),告诉打字机把打印头定位到左边界;
另一个叫做“换行”(line feed),告诉打字机把打印头放到所要打印纸的下一行开头。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return;
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed;
符号 ASCII码 意义
\n 10 换行NL
\r 13 回车CR
Windows系统里,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即“\r”。
Unix系统里,每行结尾只有“<换行>”,即“\n”;
而分歧导致的直接后果是,
Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
2、软回车和硬回车
再扩展一下回车的一些知识。
硬回车就是普通我们按回车Enter产生的,它在换行的同时也起着段落分隔的作用。
软回车是用 Shift + Enter 产生的,它换行,但是并不换段,即前后两段文字在 Word 中属于同一“段”。在应用格式时你会体会到这一点。
软回车能使前后两行的行间距大幅度缩小,因为它不是段落标记,要和法定的段落标记——硬回车区别出来。硬回车的html代码是<p>..</p>,段落的内容就夹在里面,而软回车的代码很精悍:<br>。网页的文字如果复制到word中,则硬回车变为弯曲的箭头,软回车变为向下的箭头。
转载自: http://www.haowt.info/archives/403.html https://www.cnblogs.com/helloHKTK/p/7351946.html http://blog.csdn.net/fanwenbo/article/details/54848429 http://blog.jobbole.com/46200/
相关文章推荐
- windows下使用git出现 warning: LF will be replaced by CRLF in git/.gitignore. 解决方案
- 在Windows下使用git时出现 warning: LF will be replaced by CRLF in xxx.
- 在Windows平台上,使用Git时,出现warning: LF will be replaced by CRLF in……
- windows下使用git出现:warning: LF will be replaced by CRLF in
- 在windows 7下git add *的时候遇到warning: LF will be replaced by CRLF in folder
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF的解决办法
- windows使用git时出现:warning: LF will be replaced by CRLF
- git警告warning: CRLF will be replaced by LF in iris/js/list.js.
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- Windows环境git执行git add命令warning: LF will be replaced by CRLF in readme.txt.
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- @maohoo windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF
- windows使用git时出现:warning: LF will be replaced by CRLF