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

时间:2014-07-15 13:25:24

标签: git

根据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。为什么&#34;推&#34;在这里待二等?理由是什么?

1 个答案:

答案 0 :(得分:1)

虽然看起来可以更好地记录,但它可能与此有关:

  

<强> push.default

     

如果在命令行上没有给出refspec,在远程中没有配置refspec,并且命令行上给出的任何选项都没有暗示refspec,则定义动作git push

     

可能的值是:

     
      
  • nothing - 不要推动任何东西。
  •   
  • matching - 推送所有匹配的分支。两端具有相同名称的所有分支都被认为是匹配的。这是默认设置。
  •   
  • tracking - 将当前分支推送到其上游分支。
  •   
  • current - 将当前分支推送到同名分支。
  •   

默认的push refspec是由push.default设置控制的,因此,除非您需要的设置不是默认设置,否则不需要每个远程推送refspec 。但是,如果您希望一个遥控器以一种方式工作而另一个遥控器以不同方式工作,您可以使用每个远程推送refspecs指定详细信息。