为什么Git不默认为“origin master”?

时间:2011-04-24 10:26:15

标签: git

我多次尝试过

git pull

并且它表示未指定分支。所以How do you get git to always pull from a specific branch?中的答案似乎有效。

但是我想知道,为什么Git不默认为master分支?如果没有指定任何内容,那么表示master分支是否有意义? Git是否试图辜负它的名字 - “一个混蛋”=一个不愉快的人,所以当你问什么时候它,它总是告诉你,“因为你没有说你是否想知道当地时间或格林威治标准时间,中止。“

3 个答案:

答案 0 :(得分:78)

git尝试根据您当前所在的分支使用git pull的合理默认值。如果您在git pull时遇到master引用的错误,则表示您尚未为master配置上游分支。在许多情况下,这将被配置 - 例如,当您从存储库克隆时,git clone将设置origin远程指向该存储库并使用{{设置master 1}}作为上游,所以origin/master将Just Work™。

但是,如果您想手动进行配置,可以使用:

git pull

...虽然从git 1.8.0开始,你应该使用 git branch --set-upstream master origin/master ,因为之前的使用不会因为容易混淆而容易被弃用。因此,对于git 1.8.0及更高版本,你应该这样做:

--set-upstream-to

或者您可以在推送时使用以下方式设置适当的配置:

 git branch --set-upstream-to origin/master

...而 git push -u origin master 会做你想做的事。

答案 1 :(得分:7)

如上所述,git clone会适当地设置所有默认值。 我发现使用-u选项推送最容易设置现有的回购。

  

git push -u origin master

您可以使用

查看远程配置的内容
  

git remote -v

有关详细信息,请参阅git help remote

答案 2 :(得分:0)

为什么要默认从主分支拉?如果我的存储库没有名为master的分支怎么办?毕竟,它只是一个名为“master”的分支。

我对你的问题的回答是,git不想妨碍你并决定工作流程应该是什么。通常这不是问题,因为你通常已经设置了远程分支,所以当你使用没有参数的“git pull”时,git知道该怎么做。

相关问题