为什么git pull不能拉取新创建的分支,即使该分支已经推送到远程?

4
我认为git pull = git fetch + git merge 这对于拉取远程分支的更改很好,直到遇到以下情况:在git pull不拉取新创建的分支。所谓新创建的分支是指“其他人”创建了一个新的分支并将其推送到远程,我尝试执行git pull,但是我没有将新分支添加到我的远程分支列表中。
只有在执行git fetch然后执行git merge后,我才能获取此新创建的分支。
问题:这是否意味着,仅当您要拉取现有分支的更改时才执行git pull,并且仅当您要拉取新创建的分支时才执行git fetch + git merge
编辑:
感谢@uDaY。现在我知道如何在git bash中执行此操作。但是想知道如果我们想从Eclipse IDE执行此操作,该如何使Eclipse git pull实用程序知道执行git pull -all而不是默认的git pull?有任何想法吗?
更新1:忽略它,我将发布一个新问题。
更新2:09/23/2015 另一个问题是不需要的,我解决了。这里是,

Pull基本上是fetch + merge

因此,除非您定义了fetch要获取什么内容,否则不能期望pull拉取您想要的内容!
这意味着,在Eclipse中,由于无法配置pull,因此必须配置“Fetch”。 也就是说:右键单击

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

看看是否在“refmappings”下定义了某些映射。不管怎样,进入高级选项,将弹出一个新窗口 其中显示“配置提取”-提取参考规范-选择要提取的引用 确保您的源引用为“refs/heads/”和目标引用为“refs/remotes/origin/”,并勾选“强制更新”复选框。
我还执行了一步额外操作,通过选择“源引用:”下拉列表并选择新分支名称(例如:newbranch), 选择“目标引用:”下拉列表并选择新分支名称(例如:origin/newbranch),然后单击“+添加规范”,最后单击“完成”。现在保存它。
最后执行pull
1个回答

4

默认情况下,Git pull不会获取所有分支。如果您想使用git pull拉取所有分支,则需要执行以下操作:

$ git pull --all

请参见文档

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

<repository><branch>的默认值从当前分支的"remote"和"merge"配置中读取,由git-branch[1] --track设置。


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