当我在终端(MacOS)中键入git init(或git help tutorial)时,我收到以下消息:fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit但是当我使用像git config --list或git config user.name这样的命令时,它工作正常。为什么有些命令有效而有些无效?
git init
git help tutorial
fatal: bad numeric config value 'ward' for 'core.safecrlf': invalid unit
git config --list
git config user.name
amrnrhlw1#
phd's answer具有您需要的修复功能:修正warn的拼写(您的拼写错误是ward)。不过,您的问题的另一部分确实有答案:为什么有些命令有效而有些无效?.git/config、.gitconfig或其他配置文件中的 * data * 基本上是自由格式的,是一种修改过的INI file。也就是说,您可以创建自己的包含名称和值的节和子节:
warn
ward
.git/config
.gitconfig
[nadin "data"] why = some questions
这会创建一个新项nadin.data.why,其值为some questions。* Git不会关心这个设置是否存在,也不会关心它被设置为什么 ,因为Git没有nadin节,更不用说nadin.data或nadin.data.why了(至少现在没有,将来也可能没有)。每个Git * 命令 * 都可以使用程序 * 所关心的任何设置。例如,git commit需要您的user.name和user.email设置,以便将相应的元数据写入新提交。git branch命令读取许多branch.*设置,并且可以为新的分支自己创建一些git remote命令需要读取[remote]段的大部分(各种remote.*项);git push和git fetch将读取它们的某个子集。只有在 * 读取 * 某个值时, 使用 * 该值的某个命令才会注意到该值对该特定命令是否有意义,因此,无论出于什么原因,git init都希望使用core.safecrlf的值,并读取core.safecrlf的设置,然后要求它是"布尔型"的。(true、false、0、1和清空在此都有效),或特殊值warn。git config命令是用来创建、读取和写入配置文件的,因此它在设计上尽量不 * 依赖于 * 配置文件:如果在编写配置文件的程序可以运行之前需要配置文件,那就有问题了。这就像要求你是某个俱乐部的成员才能加入一样。所以git config并不依赖于core.safecrlf的设置,因此无法告诉你它是否无效。这是设计中的一个缺陷,但这意味着你可以使用git config来 * get或set * nadin.data.why,尽管Git从未听说过这样的字段。
nadin.data.why
some questions
nadin
nadin.data
git commit
user.name
user.email
git branch
branch.*
git remote
[remote]
remote.*
git push
git fetch
core.safecrlf
true
false
0
1
git config
z2acfund2#
core.safecrlf必须是布尔值(true、false或空)或warn。要修复您的配置:
git config --global core.safecrlf warn
2条答案
按热度按时间amrnrhlw1#
phd's answer具有您需要的修复功能:修正
warn
的拼写(您的拼写错误是ward
)。不过,您的问题的另一部分确实有答案:为什么有些命令有效而有些无效?
.git/config
、.gitconfig
或其他配置文件中的 * data * 基本上是自由格式的,是一种修改过的INI file。也就是说,您可以创建自己的包含名称和值的节和子节:这会创建一个新项
nadin.data.why
,其值为some questions
。* Git不会关心这个设置是否存在,也不会关心它被设置为什么 ,因为Git没有nadin
节,更不用说nadin.data
或nadin.data.why
了(至少现在没有,将来也可能没有)。每个Git * 命令 * 都可以使用程序 * 所关心的任何设置。例如,
git commit
需要您的user.name
和user.email
设置,以便将相应的元数据写入新提交。git branch
命令读取许多branch.*
设置,并且可以为新的分支自己创建一些git remote
命令需要读取[remote]
段的大部分(各种remote.*
项);git push
和git fetch
将读取它们的某个子集。只有在 * 读取 * 某个值时, 使用 * 该值的某个命令才会注意到该值对该特定命令是否有意义,因此,无论出于什么原因,
git init
都希望使用core.safecrlf
的值,并读取core.safecrlf
的设置,然后要求它是"布尔型"的。(true
、false
、0
、1
和清空在此都有效),或特殊值warn
。git config
命令是用来创建、读取和写入配置文件的,因此它在设计上尽量不 * 依赖于 * 配置文件:如果在编写配置文件的程序可以运行之前需要配置文件,那就有问题了。这就像要求你是某个俱乐部的成员才能加入一样。所以git config
并不依赖于core.safecrlf
的设置,因此无法告诉你它是否无效。这是设计中的一个缺陷,但这意味着你可以使用git config
来 * get或set *nadin.data.why
,尽管Git从未听说过这样的字段。z2acfund2#
core.safecrlf
必须是布尔值(true
、false
或空)或warn
。要修复您的配置: