Git,将文件添加到存储库会给LF带来致命错误 - > CRLF

时间:2011-12-28 04:02:21

标签: git version-control newline msysgit core.autocrlf

我是git的新手,我需要一些帮助。我在Windows上使用msysgit。

当我执行命令git add [folderName]时,我得到了回复:

fatal: LF would be replaced by CRLF in [.css file or .js file]

然后如果你尝试提交没有任何反应。

$ git commit
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       so01/
nothing added to commit but untracked files present (use "git add" to track)

其中一些css / js文件是从网上下载的,所以我猜这就是为什么有LF。 如果我打开文件并剪切/粘贴内容,那么我会在下一个文件上收到错误,依此类推。

非常感谢任何帮助。

修改

core.autocrlf设置为false似乎可以解决问题,但我在很多帖子上都没有将此选项设置为false。

有人能指出我在哪里可以找出在这种情况下会出现什么问题?

4 个答案:

答案 0 :(得分:24)

非常新的,所以将core.autocrlf设置为false对我来说没有多大意义。所以对于其他新手,请转到.git文件夹中的配置文件并添加:

[core]
    autocrlf = false

在[核心]标题下。

答案 1 :(得分:22)

信任代码编辑器来操纵你的行结尾。汽车crlf应该是假的。不要让源代码控制过于聪明。如果不需要使用源代码管理工具来更改行结尾,请不要这样做。这会伤害。

从一个公认的答案中重申:“除非你能看到必须处理本地eol的特定处理,否则最好不要将autocrlf置于假。”

同样来自autocrlf部分末尾的progit书:

“如果您是Windows程序员,只执行Windows项目,那么您可以关闭此功能,通过将配置值设置为false来记录存储库中的回车”

我能给出的唯一其他帮助是,如果你选择其他路线,请熟悉vim -b,它会显示特殊字符,例如MSysGit中的CR,以及应该显示的git show HEAD:path/to/your/file.txt 以git存储它的方式显示文件。

设置core.whitespace cr-at-eol以使补丁和差异不会将CR突出显示为可能存在问题的空白。

不值得麻烦。按原样存储。

答案 2 :(得分:6)

问题可能正在发生,因为您将Git设置为在内部使用crlf设置core.eol来存储文件。当您添加文件时,Git会警告您它会将其更改为内部格式。

Git最适合lf行结尾,因此如果可能,请始终使用core.eol = lf

这应说明何时使用core.autocrlfWhy should I use core.autocrlf=true in Git?

您可能还想使用core.safecrlf。有关设置的详细信息,请查看git config --help

答案 3 :(得分:0)

格式的git自动检测非常有效。因此,core.autocrlf=true在Windows上是一个非常好的主意。

git config --global core.safecrlf=false对git说:嘿,请将我的错误的行结尾(仅限LF)转换为Windows行结尾(CRLF),不要打扰我。

因此,您应该禁用core.safecrlf

更长的答案:https://stackoverflow.com/a/15471083/873282