如何关闭Git警告“LF将被CRLF取代”?

时间:2011-10-25 17:52:25

标签: git config newline lf

我正在使用Windows,但也可以在Unix上运行,所以我不需要存储Windows行结尾。我只想抑制警告。

我发现了相关的Stack Overflow问题:
git turn off "LF will be replaced by CRLF" warning
git, whitespace errors, squelching and autocrlf, the definitive answers

我试过了:
git config core.whitespace cr-at-eol false
git config core.whitespace cr-at-eol true
git config core.whitespace cr-at-eol nowarn

但这些似乎没有做任何事情。有谁知道如何关闭警告?

感谢。

4 个答案:

答案 0 :(得分:7)

我只是在autocrlf=true文件中使用.git/config来涵盖Windows中的大多数情况。根据新的源文件,偶尔会有警告。

如果您有不遵循该方案的特殊文件,请为它们单独设置.gitattributes,例如我有*.m eol=lf的Matlab文件。

答案 1 :(得分:4)

我用这种方式:

  

git config core.autocrlf命令用于更改Git处理的方式   行尾。它需要一个参数。

     

在Windows上,您只需将true传递给配置即可。例如:

$ git config --global core.autocrlf true    
# Configure Git on Windows to properly handle line endings
     

您还可以提供一个特殊的--global标志,这使得Git可以使用   跨越每个本地Git存储库的行结尾的相同设置   你的电脑。

     

在您设置了core.autocrlf选项并提交了一个    .gitattributes 文件,您可能会发现Git想要提交您尚未修改的文件。在这一点上,Git渴望改变   每个文件的行结尾。

     

自动配置存储库的行结尾的最佳方法   是先用Git备份你的文件,删除你的每个文件   存储库( .git目录除外),然后还原文件   一次全部。   将当前文件保存在Git中,这样就不会丢失任何工作。

$ git add . -u
$ git commit -m "Saving files before refreshing line endings"
     

从Git索引中删除所有文件。

$ git rm --cached -r .
     

重写Git索引以获取所有新行结尾。

$ git reset --hard
     

重新添加所有已更改的文件,并为提交做好准备。这个   你有机会检查哪些文件(如果有的话)没有改变。

$ git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."
     

将更改提交到您的存储库。

$ git commit -m "Normalize all the line endings"

来源:https://help.github.com/articles/dealing-with-line-endings/

答案 2 :(得分:0)

我也正在使用Windows开发,因为我们的服务器是由Linux驱动的,所有代码都必须基于Linux,所以我更倾向于将所有文件更改为LF而不是CRLF。

来自git命令行:

git config --global core.autocrlf false

我正在使用intellij想法,所以这很容易:

  

1)文件 - >设置 - >编辑 - >代码样式:(对于任何新文件都会   被创造)

     

一个。方案:默认

     

湾行分隔符:unix和os x(\ n)

     

2)标记项目的根目录 - >文件 - >行分隔符 - >如果   unix和os x(\ n)(对于现有文件)

备注:您还可以使用dos2unix.exe等应用程序或其他一些脚本。

比我使用命令行:(你也可以从想法中做到这一点)

git commit -m "bla bla"
git add .
git push origin master
从那时起,我没有收到这些警告

答案 3 :(得分:0)

<块引用>

您可以使用

关闭警告

git config --global core.safecrlf false

(这只会关闭警告,而不是功能本身。)

https://stackoverflow.com/a/14640908/1507124


问题是当使用 autocrlf 设置行尾转换时,如何关闭将文件检入 Git 时生成的警告。

这些是不会保留行尾的警告。 IE。您有一个处于特定状态的文件,您正在将其检入 Git,而在其他时间检出它时,您不应该期望它处于该确切状态。或者,如果其他人检查出来。

如果您更改 core.autoclrf 的设置,您只是更改了您希望文件检出的格式和扩展名的设置,将警告翻转为“CRLF 将被 LF 替换”。除非您将其更改为 input,否则在大多数情况下这会使事情变得一团糟。

行尾是否重要取决于项目,并且应该在项目范围内设置,使用 .gitattributes