Git配置:如何通过通配符检索指定类别配置项?
获取Git中特定前缀的配置项:原生Git命令方案
嘿,这个问题我之前折腾过,其实不用非得靠管道+grep,Git本身就有原生的方法来匹配前缀配置项!
正确的原生命令:git config --get-regexp
你需要用--get-regexp参数,它专门支持用正则表达式匹配配置键名。针对你要的所有core.前缀的配置,直接运行:
git config --get-regexp '^core\.'
这个命令会输出所有键名以core.开头的配置项,格式是键名 值,比如:
core.symlinks true core.autocrlf false core.editor vim
进阶用法:只获取键名或值
如果只需要键名,可以加--name-only参数:
git config --get-regexp '^core\.' --name-only
输出会是:
core.symlinks core.autocrlf core.editor
同理,只获取值就用--value-only:
git config --get-regexp '^core\.' --value-only
为什么你之前的尝试失败了?
你用的git config --get core'.*'无效,是因为--get参数是用来获取单个具体键名的配置值,不支持通配符或正则匹配。而--get-regexp才是Git为匹配一类配置项设计的工具,它会解析正则表达式来匹配键名。
和git config --list | grep core的区别
虽然管道+grep也能实现类似效果,但原生的--get-regexp更可靠:
- 它只会匹配配置键名的前缀,不会误匹配到值里包含"core"的项(比如某个配置值是"coreutils",grep会把它列出来,但
--get-regexp不会) - 它会正确遵循Git配置的作用域优先级(local > global > system),输出的是当前生效的配置,而
--list | grep只是纯文本过滤所有列出的配置,可能包含多个作用域的重复项
内容的提问来源于stack exchange,提问作者G_V
相关产品推荐
相关产品推荐

