为什么 git pull 没有拉取被推送到远程的新创建的分支?

Why git pull is not pulling the newly created branch that was pushed to remote?

我以为git pull = git fetch + git merge

这对于有时拉取远程分支中的更改很有用,直到遇到git pull中没有拉取新创建的分支的情况。新创建的分支,我的意思是 "someone else" 刚刚创建了一个新分支并推送到远程,我尝试执行 git pull,但我没有将新分支添加到我的远程分支列表中。

只有在我做了 git fetch 然后 git merge.

之后,我才能够得到这个新创建的分支

问题: 那么这是否意味着,仅当您想要拉取现有分支的更改时,才总是执行 git pull, 当你想拉一个新创建的分支时做一个 git fetch + git merge?

编辑:

感谢@uDaY。现在我明白如何在 git bash 中执行此操作了。但是想知道我们是否想从 Eclipse IDE 执行此操作,我们如何才能让 Eclipse git 拉取实用程序执行 git pull -all 而不是默认的 git pull?有什么想法吗?

Update1 : 忽略它,我将 post 作为新问题。

Update2: 09/23/2015 好吧,另一个问题不需要,我想出来了。在这里,

Pull is basically fetch + merge

因此,除非您定义 fetch 必须真正获取的内容,否则您不能期望 pull 会拉取您想要拉取的内容!

这个意思是,在eclipse中既然不能配置一个pull,就必须要配置'Fetch'。 即:右键单击

project->Team->Remote->Configure Fetch from Upstream

。 查看是否在“refmappings”下定义了某些映射。不管怎样,转到高级,然后会弹出一个新的window 上面写着“Configure Fetch”- Fetch Ref Specifications-Select refs to fetch 确保将源引用设置为 "refs/heads/",将目标引用设置为 "refs/remotes/origin/",并选中强制更新复选框。

我还做了一个额外的步骤,通过选择“Source ref:”的下拉列表并选择新的分支名称,例如:newbranch, 选择“Destination ref:”的下拉菜单并选择新的分支名称,例如:origin/newbranch,然后单击“+ Add Spec", 然后单击“完成”。现在保存它。

最后做一个

Git 默认情况下拉取不会获取所有分支。如果你想使用 git pull 拉取所有分支,你需要做

$ git pull --all

查看 documentation

git pull [options] [<repository> [<refspec>…​]]

Default values for <repository> and <branch> are read from the "remote" and "merge" configuration for the current branch as set by git-branch[1] --track.