对于具有有限有效值集的已定义git config变量,是否有一种方法可以验证配置文件中的值是否有效?
例如,如果我输入invalid值:
git config --global push.default simp
vs 有效值
git config --global push.default simple
除了行为不符合您的预期目的之外,是否有其他方法可以检测到此?
答案是both no and yes。
给出任何特定名称或名称集,可能会有一些有限的正确值选项集。该设置也可能取决于您的Git版本。例如,pull.rebase
(Git 1.7.9中的新功能)可以设置为:
false
:git pull
将使用git merge
作为第二个命令true
:git pull
将使用git rebase
作为第二个命令preserve
,因为Git(1.8.5):git pull
将使用git rebase -p
作为第二个命令interactive
,因为Git 2.8:git pull
将使用git rebase -i
作为第二个命令merges
,因为Git 2.18:git pull
将使用git rebase -r
作为第二个命令因此,Git 2.18或更高版本的有效值的集合与Git 2.15的有效值的集合不同,Git 2.15或Git 1.7.1的有效值集合不同。
验证者,如果您希望构建一个验证者,则需要一个庞大的数据库,该数据库应包含给出以下内容的条目:
pull.rebase
或push.default
preserve
,而倾向于merges
然后您可以问:对于Git版本x.y,哪些设置对该配置项目有效。包括default默认值也很不错,因为它们也会更改。
特别是对于push.default
,该设置在Git 1.6.3中已经存在,但是在Git 2.0开始默认为matching
之前,它默认为simple
。但是,直到[Git 1.7.11],simple
设置甚至没有exist。
据我所知,“官方Git知道的大型数据库及其价值”并不以网状形式存在。它必须从Git源码构建。就像我在上面的示例中所做的那样,用于Git的Git存储库是公共的,并且易于搜索,但是建立一个完整的数据库将非常耗时。
((请注意,用户可以通过编写自己的Git命令(例如,作为shell脚本)来发明自己的个人Git配置值和设置。