git 什么叫“致命:“core. safecrlf”的数字配置值“ward”错误:无效单元”是指?

2nc8po8w  于 2023-02-28  发布在  Git
关注(0)|答案(2)|浏览(151)

当我在终端(MacOS)中键入git init(或git help tutorial)时,我收到以下消息:
fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit
但是当我使用像git config --listgit config user.name这样的命令时,它工作正常。
为什么有些命令有效而有些无效?

amrnrhlw

amrnrhlw1#

phd's answer具有您需要的修复功能:修正warn的拼写(您的拼写错误是ward)。不过,您的问题的另一部分确实有答案:
为什么有些命令有效而有些无效?
.git/config.gitconfig或其他配置文件中的 * data * 基本上是自由格式的,是一种修改过的INI file。也就是说,您可以创建自己的包含名称和值的节和子节:

[nadin "data"]
    why = some questions

这会创建一个新项nadin.data.why,其值为some questions。* Git不会关心这个设置是否存在,也不会关心它被设置为什么 ,因为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的设置,然后要求它是"布尔型"的。(truefalse01和清空在此都有效),或特殊值warn
git config命令是用来创建、读取和写入配置文件的,因此它在设计上尽量不 * 依赖于 * 配置文件:如果在编写配置文件的程序可以运行之前需要配置文件,那就有问题了。这就像要求你是某个俱乐部的成员才能加入一样。所以git config并不依赖于core.safecrlf的设置,因此无法告诉你它是否无效。这是设计中的一个缺陷,但这意味着你可以使用git config来 * get或set * nadin.data.why,尽管Git从未听说过这样的字段。

z2acfund

z2acfund2#

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

git config --global core.safecrlf warn

相关问题