为什么git pull origin master不起作用,但git pull呢?

时间:2012-07-11 13:27:42

标签: git branch git-pull

所以今天早上我遇到了一个奇怪的问题,我想知道社区是否可以帮助我解决这个问题。所以当我想从远程主副本获取并合并项目更改并将它们带到我的本地主服务器时,我一直在做git pull origin master。我最近遇到了一些合并问题,所以我做了一个实验。我总是像git pull origin master那样做了,并且得到的信息是“已经及时更新了。”#34;然后我做了一个正常的git pull,然后看到我的所有同事改变并与我当地的主分支合并。为什么git pull origin master不起作用,但git pull呢?我想知道由于我发现的这个怪癖,我还没有看到多少变化。我已经做了一些调查,以找出存在的差异,但我仍然没有找到一个理由,为什么我的回购没有正确地使用git pull origin master进行更新,当我还没有看到更改被提取并使用该方法合并到我的分支中。想法?

提前致谢。

3 个答案:

答案 0 :(得分:4)

听起来您的本地分支机构没有跟踪您的想法。尝试发出git remote show origin并检查“为git pull'配置的本地分支:”部分。没有规范的git pull将默认来自当前分支的“远程”和“合并”配置,每个手册页:

  

由git-branch(1)--track设置的当前分支的“远程”和“合并”配置读取和的默认值。

我敢打赌,你有一个不同的分支配置用于跟踪而不是origin/master。你也可以从另一个遥控器上拉。要验证这些可能性,请尝试:

git config branch.master.remote ;# shows you the tracked remote
git config branch.master.merge ;# shows you the tracked upstream branch

这些假设您的本地分支称为master

答案 1 :(得分:0)

通过事物的声音,你正在拉下其他分支。其他开发人员正在另一个分支上工作,或者您处于分离状态,不再在分支/他们的分支上。

如果您运行git branch --all,它会显示您项目中的所有分支。

要切换回母版只需运行:git checkout master

希望这有帮助

答案 2 :(得分:0)

@Chirstopher 的回答没有任何意义。如果我输入 git pull origin master,它应该从远程源拉取 master 分支,但这并不总是发生。

拉取远程分支的唯一可靠方法是先检出分支,然后再拉取。

将远程 master 银行拉入本地 develop 分支:

git stash
git chechout master
git pull
git checkout develop
git pull master
git stash pop