[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

转载 2015年11月18日 11:22:58

遇到这两个错误,是因为Git的换行符检查功能。

core.safecrlf


Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符。这个功能的选项如下:

  • false - 不做任何检查
  • warn - 在提交时检查并警告
  • true - 在提交时检查,如果发现混用则拒绝提交

建议使用最严格的 true 选项。

core.autocrlf

假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

<code style="margin-right: 0px; margin-left: 0px; padding: 0px; white-space: pre; border: none; border-radius: 3px; margin-top: 0px !important; margin-bottom: 0px !important; background-color: transparent;"><span class="pln" style="color: rgb(240, 240, 240); margin-top: 0px !important;">$ git config </span><span class="pun" style="color: rgb(139, 137, 112);">--</span><span class="kwd" style="color: rgb(132, 112, 255);">global</span><span class="pln" style="color: rgb(240, 240, 240);"> core</span><span class="pun" style="color: rgb(139, 137, 112);">.</span><span class="pln" style="color: rgb(240, 240, 240);">autocrlf </span><span class="kwd" style="color: rgb(132, 112, 255); margin-bottom: 0px !important;">true</span></code>

Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:

<code style="margin-right: 0px; margin-left: 0px; padding: 0px; white-space: pre; border: none; border-radius: 3px; margin-top: 0px !important; margin-bottom: 0px !important; background-color: transparent;"><span class="pln" style="color: rgb(240, 240, 240); margin-top: 0px !important;">$ git config </span><span class="pun" style="color: rgb(139, 137, 112);">--</span><span class="kwd" style="color: rgb(132, 112, 255);">global</span><span class="pln" style="color: rgb(240, 240, 240);"> core</span><span class="pun" style="color: rgb(139, 137, 112);">.</span><span class="pln" style="color: rgb(240, 240, 240); margin-bottom: 0px !important;">autocrlf input</span></code>

这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:

<code style="margin-right: 0px; margin-left: 0px; padding: 0px; white-space: pre; border: none; border-radius: 3px; margin-top: 0px !important; margin-bottom: 0px !important; background-color: transparent;"><span class="pln" style="color: rgb(240, 240, 240); margin-top: 0px !important;">$ git config </span><span class="pun" style="color: rgb(139, 137, 112);">--</span><span class="kwd" style="color: rgb(132, 112, 255);">global</span><span class="pln" style="color: rgb(240, 240, 240);"> core</span><span class="pun" style="color: rgb(139, 137, 112);">.</span><span class="pln" style="color: rgb(240, 240, 240);">autocrlf </span><span class="kwd" style="color: rgb(132, 112, 255); margin-bottom: 0px !important;">false</span></code>

GIT 提交异常 fatal: LF would be replaced by CRLF

GIT 提交错误 fatal: LF would be replaced by CRLF 由于Unix 和 Windows 下对换行符的解释不同,提示为 fatal: LF would b...
  • zmy3376365
  • zmy3376365
  • 2015年10月09日 14:37
  • 4090

[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

Git常见问题,实用解决办法。
  • feng88724
  • feng88724
  • 2013年09月12日 14:11
  • 32818

【git】warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

遇到这两个错误, 基本上都是叫你将 autocrlf 设置为 false. 但是我觉得这样很不妥。 如果你的源文件中是换行符是LF,而autocrlf=true, 此时git add...
  • winnie8829
  • winnie8829
  • 2014年07月22日 20:22
  • 607

在Windows平台上,使用Git时,出现warning: LF will be replaced by CRLF in……

在Windows平台上,使用Git。当输入添加命令(例如:git add .)时,会出现warning: LF will be replaced by CRLF in……这样的警告。虽然对于后期编程没...
  • Fantasy_Lin_
  • Fantasy_Lin_
  • 2016年12月03日 16:38
  • 921

Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案

今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端。 原回答地址在stackoverflow上,附上链接--http://...
  • Starry_Night9280
  • Starry_Night9280
  • 2016年11月17日 22:35
  • 4033

git 出现warning crlf will be replaced by lf in projects...../..../ 解决方案

warning: LF will be replaced by CRLF….. 解决办法: 在git bash  输入下面的命令: git config --global core.autocr...
  • zxciop110
  • zxciop110
  • 2013年08月21日 10:41
  • 2825

Git 提交时报错warning: LF will be replaced by CRLF in

提交时报错warning: LF will be replaced by CRLF in 今天在自己的hexo博客上提交东西时 出现这样一段代码 warning: LF will be repla...
  • Yan_Less
  • Yan_Less
  • 2017年06月05日 13:30
  • 517

在Windows下使用git时出现 warning: LF will be replaced by CRLF in xxx.

由于重复率比较大,为了尊重他人的成果,先在此注明本文是在学习了以下博文之后的一些思考 http://blog.csdn.net/unityoxb/article/details/20768687由于...
  • sunshine_drizzle
  • sunshine_drizzle
  • 2016年04月06日 15:57
  • 702

windows使用git时出现:warning: LF will be replaced by CRLF

windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法: $ rm -rf .git // 删除.git $ git config ...
  • unityoxb
  • unityoxb
  • 2014年03月08日 10:42
  • 58750

git warning: LF will be replaced by CRLF in 解决办法

git warning: LF will be replaced by CRLF in 解决办法 在使用git的时候,每次执行 12#git add "目录"git add .都会提...
  • u011935939
  • u011935939
  • 2016年02月02日 16:59
  • 12857
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF
举报原因:
原因补充:

(最多只允许输入30个字)