为什么“git remote add”会创建一个“fetch” refspec而不是“push” refspec?

4
根据git config的文档,支持以下两个选项:
remote.<name>.fetch
    The default set of "refspec" for git-fetch(1). See git-fetch(1).

remote.<name>.push
    The default set of "refspec" for git-push(1). See git-push(1).

然而,当我执行以下命令:
git remote add <name> <url>

我看到只添加了fetch refspec。为什么“push”在这里被视为次要的?这是什么原因?

1个回答

1
尽管它似乎可以有更好的文档记录,但这可能与以下内容有关:
“push.default” 定义了如果命令行上没有给出refspec,远程没有配置refspec,并且命令行上没有任何选项暗示refspec的情况下,“git push”应采取的操作。
可能的值包括: “nothing” - 不推送任何内容。 “matching” - 推送所有匹配的分支。在两端具有相同名称的所有分支都被认为是匹配的。这是默认值。 “tracking” - 将当前分支推送到其上游分支。 “current” - 将当前分支推送到同名分支。
默认的推送refspec由“push.default”设置控制,因此,除非您想要不同于所需设置的默认值,否则不需要每个远程推送refspec。但是,如果您希望一个远程以一种方式工作,而另一个远程以不同的方式工作,则可以使用每个远程推送refspecs指定详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接