我的gitconfig中有以下两个块,其中包含真实信息代替<placeholders>
:
[github]
user = <name>
token = <token>
email = <email address>
[github "user"]
user = <name>
token = <token>
email = <email address>
两者都包含相同的3个值,我想这是不必要的重复,但有什么区别,我应该删除哪些?它没有造成任何问题。
此外,我也有这个块:
[user]
name = <name>
email = <email address>
同样,同名和电子邮件地址。
更新:正在运行git config --list
显示
github.user
github.token
github.email
以及
github.user.user
github.user.token
github.user.email
我看起来错了,我从文件中删除了整个[github "user"]
块。似乎没有什么打破。
答案 0 :(得分:2)
据我所知,该语法意味着您有github
部分和github "user"
子部分(see under Syntax)。这意味着您可以访问github
,也可以访问github.user
,因为您已注意到--list
。这样你就可以存储不同的值。由于您的值相同,因此您应该能够在不破坏任何内容的情况下移除[github "user"]
,如您所见。
答案 1 :(得分:0)
注意:谨防git config小节:最近对“ git config
”的更新破坏了小节中的更新变量,该变量已在Git 2.19(2018年第三季度)中得到纠正。
这说明了部分和子部分之间的区别。
请参见commit bff7df7的commit 2d84f13,commit 999d902(2018年8月8日)和Stefan Beller (stefanbeller
)(2018年8月1日)。
(由Junio C Hamano -- gitster
--在commit 2a2c18f中合并,2018年8月20日)
config
:在编写时修正区分大小写的小节名称用户报告了与节混淆有关的子模块问题,但可以归结为以下测试用例:
$ git init test && cd test $ git config foo."Bar".key test $ git config foo."bar".key test $ tail -n 3 .git/config [foo "Bar"] key = test key = test
子节区分大小写,我们进行了正确读取它们的测试。
但是,我们没有进行使用区分大小写的小节名称正确写出配置的测试,这就是为什么6ae996f(git_config_set
中未引起注意的原因:利用配置解析器的事件流,2018-04- 09,Git 2.18)不幸的是,我们必须对看起来像以下的旧样式配置进行区分:
[foo.Bar] key = test
和上面引用的新引用样式。
旧样式记录为与大小写无关,因此我们需要保留'
strncasecmp
';尽管旧样式配置的最终设置与配置不同。
请确保使用Git 2.19(如上所示),或者至少使用Git 2.13或更高版本。
未记录 的是git -c
用于小写变量名:
vonc@bvonc MINGW64 ~
$ git version
git version 2.12.0.windows.1
vonc@bvonc MINGW64 ~
$ git -c VAR=c config -l|grep var
var=c
在变量大小写很重要的OS上可能是个问题(另请参见下面的url大小写)
此问题已在Git 2.13(2017年第二季度)中进行了修复,这再次说明了部分与子部分之间的区别。
请参见commit 1274a15的commit ee98df3和Junio C Hamano (gitster
)(2017年2月23日)。
(由Junio C Hamano -- gitster
--在commit 2f54451中合并,2017年3月10日)
config
:在git_config_parse_key()
中使用git_config_parse_parameter()
一次性解析配置变量 从命令行来历来是相当宽松的,并且允许 任何要传递的东西。
它还将变量名中的所有内容都转换为小写形式, 甚至是一个三级
<section>.<subsection>.<variable>
名称,其中 该零件必须以区分大小写的方式处理。。
一个三级<section>.<subsection>.<variable>
名称的示例,无论设置URL的操作系统是什么,大小写都重要:
vonc@bvonc MINGW64 ~
$ git -c url."https://myserver/GitLab".insteadOf=git@myserver.org/GitLab config -l|grep -i Gitlab
url.https://myserver.org/gitlab.insteadof=git@myserver.org/GitLab
如果您的私人Git回购服务器URL并非完全小写...该命令将不起作用。
scheme of an url might be case insensitive和well as the domain一样,其余的网址(这里是/GitLab
部分)can be case sensitive。