为什么“git pull origin master”实际上并没有改变我计算机目录中的文件?

时间:2013-03-12 20:16:57

标签: git github merge git-pull

我还是Github的新手,虽然我处在一个我必须积极使用它的位置。

无论如何,我使用“git pull upstream master”来拉动并合并我正在进行的项目的最新代码。我以为这个命令会更新我电脑上的实际文件(出现在目录中的文件等),但是没有任何反应。

当然,控制台提到了很多变化,但似乎没有发生任何变化。作为一项实验,我甚至删除了其中一个文件中的所有内容并重新拉出以查看是否会发生变化,但我得到了“已经做好了”。

如果有帮助,我输入git branch -v并获得以下内容:

* master a2e10a4 [ahead 29] git workflow experiment

此外,git status提供以下内容:

# On branch master
# Your branch is ahead of 'origin/master' by 29 commits.
#
nothing to commit (working directory clean)

作为最后一点,我唯一的分支就是主人。

发生了什么以及如何在我的目录/计算机上显示“拉取”更改?

谢谢。

2 个答案:

答案 0 :(得分:3)

我怀疑主人没有跟踪upstream/masterin here),这意味着git pull upstream master仅<{1>} 从<{1}}提取提交,但不会合并任何东西 您可以手动合并:upstream

另外,git merge upstream/master不是upstreamorigin领先于master:没有什么可以拉到这里,只有29个新提交推送到原点(应该是你的分叉,这是你在GitHub服务器端上游的克隆:见“What is the difference between origin and upstream in github”。

fork and upstream

答案 1 :(得分:3)

您键入的命令是git pull upstream master。该命令提取,然后合并从上游到本地分支的更改。

git status消息表明您上游的所有内容都已与您的本地主人合并。但是,您还没有推送您对遥控器的更改。换句话说,您已将更改提交到本地存储库,但尚未将它们推送到远程存储库。在像git这样的分布式VCS中,commitpush不是一回事。

键入git push origin master以将更改发送到上游远程。这将使所有内容同步。

如果这不起作用,您可能需要重新定义本地存储库。要在本地作品下重新定义远程原点,请键入git pull -r origin master。然后输入git push origin master

如果您不确定自己是否已准备好推,那么您可以随时使用git push origin master --dry-run进行干预,并且实际上不会推送任何更改。