git config:"remote.origin.push"vs"push.default"

Ame*_*ina 3 git

以下命令如何:

git config remote.origin.push refs/heads/master:refs/heads/master
Run Code Online (Sandbox Code Playgroud)

与以下命令有关:

git config push.default <option>
Run Code Online (Sandbox Code Playgroud)

(使用--local--global选项)

其中<option> 一个是:

nothing
matching
upstream (formerly tracking)
current
simple
Run Code Online (Sandbox Code Playgroud)

我想我理解第二个配置命令,但我不明白第一个命令条件/与第二个命令的关系.以下是一些提供此问题背后的背景的参考资料:

tor*_*rek 6

当你运行:

git push origin ...
Run Code Online (Sandbox Code Playgroud)

remote.origin.push覆盖设置的任何内容中设置的内容push.default.更一般地说,如果没有设置(这里是),git会重新开启,然后如果还没有设置,它会回落到链接中描述的内置默认值.remote.name.pushnameoriginpush.default

(编辑:在注意以下打破本杰明的评论和我的答复是,如果有一个...包含至少一个的Refspec,操作的Refspec覆盖的部分remote.origin.push.所以,remote.origin.push只有当你的名字申请origin或明或暗地在命令行上忽略任何及所有.在命令行上refspecs以及例如,git push不带参数则发现origin,或者git push origin没有其他参数,已经Git的查找您的remote.origin.push设置,并使用它;但git push origin xyz 使用remote.origin.push.设置当然,...上述部分可以包括多个标志,所以在这一点上正确的问题是... 部分包含任何refspecs.)

注意:

git config --local na.me value
Run Code Online (Sandbox Code Playgroud)

意味着与没有相同的东西--local.设置值(如此处)--local--global,和,选项控制设置值的位置,但是是默认值.--file filename--local

(获取值时:

git config na.me
Run Code Online (Sandbox Code Playgroud)

[或git config --getgit config --get-allgit config --get-regexp],在--local等,选项会限制在那里git会读取,没有一个从读取所有这些,与"大多数地方"来推翻"少当地"如果事情是在一个以上的地方设置. )

  • `git push` 文档指出,仅当您运行不带 `&lt;refspec&gt;` 部分的 `git push &lt;remote&gt;` 时,`remote.&lt;remote&gt;.push` 才会发挥作用。如果您“确实”提供了“&lt;refspec&gt;”部分,则空目标部分意味着重复源部分。但请注意,“git push origin xyz”的“xyz”部分中的“不合格”引用不一定会转换为“分支”名称。我不清楚的一件事是它在所有情况下如何翻译(例如,如果您同时有分支“xyz”和标签“xyz”,但遥控器只有标签“xyz”)。 (2认同)