为什么 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
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.
我以为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
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.