使用Git,如何关闭“ LF将被CRLF取代”警告


153

使用Git时,使用autocrlf = true标志时,更改行尾时仍会发出警告。

我了解警告的含义以及如何关闭行尾标志,但是我如何关闭警告本身?


在git引入gitattributes之后,这里所有的答案都是过时的。Safecrlf是您的朋友,autocrlf不是!请查看我的答案
Rusi

Answers:


279

您可以通过以下方式关闭警告

git config --global core.safecrlf false

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


关闭警告是否可以防止git用crlf替换lf?@chronial
aidonsnous 16/09/29

3
@aidonsnous来自git docs:如果core.safecrlf设置为“ true”或“ warn”,则git验证对于core.autocrlf当前设置,转换是否可逆。对于“ true”,git拒绝不可逆的转换;对于“警告”,git仅输出警告,但接受不可逆的转换。如果不需要拒绝不可逆的转换,请将core.safecrlf设置为false可以禁止显示警告,但仍会自动转换。
丹尼·利宾

5

您应该使用core.autocrlf inputcore.eol input。或者只是不让git使用来完全改变行尾,autocrlf false而使用来消除diffs中crlfs的高亮显示,等等core.whitespace cr-at-eol

希望这可以帮助


通常,您希望BAT脚本结束并用CRLF提交,而SH脚本用LF提交。
桑德堡

0

您正在寻找core.whitespace选项(git config --help有关详细信息,请参阅)。

您可以这样设置此选项:

$ git config core.whitespace cr-at-eol

0

我用这种方式:

将当前文件保存在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/


13
我相信OP会设法避免再看到这些警告。不规范所有行尾。
Mike Cluck 2015年

git rm --cached -r . && git reset --hard似乎可以解决问题,谢谢
Shanimal

0

有趣的是,我已经按照下面的说明应用了这两个配置,而我的.gitconfig文件包含以下两行:

[core]
       autocrlf = false
       whitespace = cr-at-eol

但是我得到了警告。现在,仅尝试尝试我将这两行注释掉,警告实际上消失了。不知道为什么我把它们放在首位...


0

设置“ core.safecrlf false”有效。但是,将值更改为“ true”后,输出从“警告”更改为“致命”,如下所示。

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

在最近的git中,使用gitattributes比使用autocrlf更好。看我的回答。(此q上的所有答案)都是过时且过时的
Rusi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.