以下命令是如何实现的:
如何通过以下命令:
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
我认为我理解了第二条配置命令,但是我不明白第一条命令如何与第二条命令相互制约/相关。以下是一些提供问题背景的参考资料:
git push origin ...
时,...
应该是分支名称(如果提供了),对吗? - Amelio Vazquez-Reinagit push origin branchName
,那么它将被解析为git push origin branchName:refs/heads/branchName
。那么remote.origin.push
又会如何发挥作用? - Number945git push
的文档说明了只有在运行git push <remote>
时没有<refspec>
部分时,remote.<remote>.push
才会生效。如果 提供 了<refspec>
部分,则空的目标部分意味着重复源部分。但是请注意,git push origin xyz
中xyz
部分的 未限定 引用并不一定转换为一个 分支 名称。有一件事情不清楚,就是在所有情况下它如何进行转换(例如,如果您同时拥有xyz
分支和xyz
标签,但远程仅有xyz
标签)。 - torek