我试图设置一些git别名并注意到git config
的一个奇怪的事情:
$ git config user.name foo # this stores the new name, ok
$ git config user.name bar baz # this adds a 'name = bar' entry to the config, wtf?
$ git config user.name qux
warning: user.name has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change user.name.
我想知道为什么git会在第二种情况下存储多个值以及它何时有用?
答案 0 :(得分:2)
导致“wtf”的最后一个“额外”参数是value_regex,有关详细信息,请参阅文档:https://git-scm.com/docs/git-config
可以使用多个值,例如要添加多个fetch refspec,请参阅此处的示例:https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
答案 1 :(得分:1)
我在我的Git配置中有这个:
[include]
path = ~/.gitconfig_user
path = ~/.gitconfig_os
这允许我从外部文件的Git配置块中组合我的配置。我猜,为了保持一致性,Git允许您为任何键指定多个值,但它们只对特定的一组消费者有意义。