'git pull'的默认行为

Tha*_*ran 6 git git-pull

为什么要git pull拉所有东西,包括新创建的远程分支却不拉git pull origin master

我正在使用git version 2.9.3.windows.2

Mel*_*ius 6

当您不指定任何分支时,将使用默认设置。默认意味着获取和更新远程存储库中现有的所有分支。

有关详细信息,请参见文档:

git pull [options] [<repository> [<refspec>…?]]
Run Code Online (Sandbox Code Playgroud)

<refspec>指定要获取的参考和要更新的本地参考。当<refspec>命令行上没有s时,remote.<repository>.fetch取而代之的是从变量中读取引用(请参阅git-fetch [1])。

资料来源:https : //git-scm.com/docs/git-pull

参考文档说明:

您经常通过定期重复地从同一个远程存储库中进行交互来与之交互。为了跟踪此类远程存储库的进度,git fetch允许您配置remote.<repository>.fetch配置变量。

通常,这样的变量可能看起来像这样:

[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

上面的示例将获取中存在的所有分支origin(即,与值左侧匹配的所有ref refs/heads/*),并更新refs/remotes/origin/*层次结构中的相应远程跟踪分支。

资料来源:https : //git-scm.com/docs/git-fetch#CRTB

此行为是默认行为,因为它使您可以立即同步整个存储库。如果您不想一次更新所有本地分支,请使用git fetch来同步存储库并git merge origin/<branch>更新每个本地分支。


R. *_*ung 6

在外行语言中git pull从远程获取所有内容(所有新分支并更新旧分支),默认情况下,它将为origin. 如果您有任何其他类似的遥控器,upstream您必须指定它git pull upstream,它将更新上游的所有内容。