15

我在 Windows 上工作,但也可能在 Unix 上工作,所以我不需要存储 Windows 行尾。我只是想压制警告。

我发现了这些相关的 Stack Overflow 问题:

我尝试了以下方法:

git config core.whitespace cr-at-eol false<Br>
git config core.whitespace cr-at-eol true<br>
git config core.whitespace cr-at-eol nowarn

但这些似乎没有任何作用。有谁知道如何关闭警告?

4

4 回答 4

8

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

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

于 2011-10-26T23:10:28.123 回答
5

我用这种方式:

git configcore.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/

于 2015-07-31T14:03:43.727 回答
1

我也在 Windows 上开发,因为我们的服务器由 Linux 提供支持,并且所有代码都必须基于 Linux,所以我更喜欢将所有文件更改为 LF 而不是 CRLF。

从 git 命令行:

git config --global core.autocrlf false

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

1)文件-->设置-->编辑器-->代码风格:(对于任何新文件都会被创建)

一个。方案:默认

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

2) 标记项目的根目录 --> 文件 --> 行分隔符 --> LF unix and os x (\n) (对于存在的文件)

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

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

git commit -m "bla bla"
git add .
git push origin master

从那以后,我没有收到那些警告

于 2017-11-15T13:32:53.597 回答
0

您可以关闭警告

git config --global core.safecrlf false

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

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


问题是当使用autocrlf.

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

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

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

于 2021-06-10T13:54:47.803 回答