git:如何在不禁用safecrlf的情况下摆脱“警告:CRLF将被LF取代”?

时间:2013-06-01 14:41:57

标签: git

我是git的新手,我已经阅读了很多关于行结尾的内容 git如何对待他们。顺便说一句,我在Windows上。我做了 一个.gitattributes文件,例如* .txt设置为文本。 当我提交.txt文件时,我收到警告:

  

警告:CRLF将被替换为LF in whatever.txt

但我知道。我不需要那个警告。更换线 文本文件中的结尾是我想要的。

现在,将safecrlf设置为false会发出警告 消失,但safecrlf的手册内容为:

  

如果为true,则进行git检查转换CRLF是否可逆   当行结束转换处于活动状态时。 Git会验证是否   命令直接修改工作树中的文件   或间接的。例如,提交文件后跟   签出同一个文件应该产生原始文件   在工作树中。如果不是当前的情况   设置core.autocrlf,git将拒绝该文件。

从那以后,safecrlf似乎是一个好主意。 但是,我不明白为什么将safecrlf设置为true 给我关于我的文本文件的警告;在我看来,这 这些是不同的问题 - 对文本文件和文本的警告 检查是否可逆。的确,git不会拒绝我的 文件。

我是否可以删除文本文件的警告,但仍然可以 {{1套?或者我误解了什么?

4 个答案:

答案 0 :(得分:16)

据我所知,将core.safecrlf设置为false唯一关闭该警告的方法。

如果您的属性设置正确,通常不需要

safecrlfsafecrlf的要点是防止假设在存储库中具有混合(或非LF)行结尾的文件中的规范化。它实际上只与core.autocrlf组合使用(以确保其自动猜测无法销毁任何东西),如果您通过.gitattributes设置自己的属性,那么应该可以将所有这些关闭。

答案 1 :(得分:11)

.gitattributes中,你可以:

# normalize text files to use lf
text eol=lf

# except these which we want crlf
*.txt eol=crlf

答案 2 :(得分:6)

你问题的简短回答是否定的。

因为,基本上,core.safecrlf设置控制“警告级别”:

  • false - 无警告地继续
  • 警告 - 继续警告
  • true - 不要继续

所以,你必须选择最适合你的选项。

答案 3 :(得分:1)

使用

$ git config core.autocrlf false