以下命令如何:
git config remote.origin.push refs/heads/master:refs/heads/master
与以下命令相关:
git config push.default <option>
(使用--local
或--global
选项)
<option>
之一是:
nothing
matching
upstream (formerly tracking)
current
simple
我想我理解第二个配置命令,但我不明白第一个命令条件/与第二个命令的关系。以下是一些提供此问题背后的背景的参考资料:
答案 0 :(得分:6)
当你跑步时:
git push origin ...
remote.origin.push
中设置的任何内容都会覆盖push.default
中设置的内容。更一般地说,如果未设置remote.name.push
(此处 name
为origin
),git会回退到push.default
,如果这也是...
没有设置,它会回落到链接中描述的内置默认值。
(编辑,如Breaking Benjamin's comment below中所述及我对其的回复,如果 一个remote.origin.push
部分,其中包含至少一个refspec ,refspec会覆盖remote.origin.push
。所以origin
仅在命令行上显式或隐式地命名git push
并且在命令行上省略任何和所有refspec时适用例如,origin
没有发现git push origin
的参数,或remote.origin.push
没有其他参数,Git会查找您的git push origin xyz
设置并使用它;但是{ {1}} 没有使用您的remote.origin.push
设置。当然上面的...
部分可以包含更多标记,因此此时正确的问题是{{1} part包含任何refspec。)
请注意:
...
与没有git config --local na.me value
的意思相同。设置值(如此处)时,--local
,--local
和--global
选项控制值的设置位置,但--file filename
是默认值。
(取值时:
--local
[或git config na.me
或git config --get
或git config --get-all
],git config --get-regexp
等选项会限制git从中读取的内容,如果没有,则会从读取所有,如果在多个地方设置了某些内容,则“最本地”覆盖“较少本地”。)