"fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit" 是什么意思?

What does "fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit" mean?

当我在终端 (MacOS) 中键入 git init(或 git help tutorial)时,我收到此消息:

fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit

但是当我使用 git config --listgit config user.name 这样的命令时,它可以正常工作。

为什么有些命令有效而有些无效?

core.safecrlf 必须是布尔值(truefalse 或空)或 warn。要修复您的配置:

git config --global core.safecrlf warn

有你需要的修正:修正 warn 的拼写(你把它当作拼写错误,ward)。不过,你问题的另一部分确实有答案:

Why do some commands work and others don't?

data.git/config.gitconfig或其他配置文件中大部分是free-form,一种修改INI file.也就是说,您可以创建自己的包含名称和值的部分和子部分:

[nadin "data"]
    why = some questions

创建一个新项目 nadin.data.why,其值为 some questionsGit 不会关心这个设置是否存在,也不关心这个设置是什么 因为 Git 没有 nadin 部分,更不用说 nadin.datanadin.data.why(至少今天不会,将来也可能不会)。

每个 Git 命令 可以并且确实使用程序 关心的任何设置 。例如,git commit 需要您的 user.nameuser.email 设置,以便它可以将适当的元数据写入新的提交中。 git branch 命令读取许多 branch.* 设置,并可能为新分支自行创建一些设置。 git remote 命令需要读取大部分 [remote] 部分(各种 remote.* 项); git pushgit fetch 将读取其中的一些子集。

只有在读取某个值时,使用该值的某些命令才会注意到该值对该特定命令是否有意义.因此 git init 出于某种原因想要使用 core.safecrlf 值,并读取 core.safecrlf 设置的值,然后要求它是“boolean-able”(true, false, 0, 1, 和空都在这里工作), 或者特殊值 warn.

git config命令是创建、读取和写入配置文件的命令,因此在设计上它尽量不依赖配置文件:如果配置文件之前编写配置文件的程序可以运行,那将是一个问题。这就像要求您先成为某个俱乐部的会员才能加入。所以 git config 取决于 core.safecrlf 设置,因此无法告诉您它是否无效。这在设计上有点缺陷,但它意味着你可以使用 git configget 或设置 nadin.data.why,即使 Git没听说过这样的领域。