8

我对 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)

最后一点,我唯一的分支是 master。

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

4

2 回答 2

3

我怀疑 master 没有跟踪upstream/master(如此),这意味着 agit pull upstream master仅从获取提交upstream,但不合并任何内容。
您可以手动合并它们:git merge upstream/master.

另外,upstream不是originmaster而是领先于origin/master:这里没有什么可以拉的,只有 29 个新的提交要推送到源(应该是你的分叉,那是你从 GitHub 服务器端上游的克隆:请参阅什么是GitHub 上的 origin 和 upstream 之间的区别?)。

分叉和上游

于 2013-03-12T20:35:14.717 回答
3

您键入的命令是git pull upstream master. 该命令获取然后将来自上游的更改合并到您的本地分支。

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

键入git push origin master以将您的更改发送到上游远程。这将使一切同步。

如果这不起作用,您可能需要重新设置本地存储库。要在本地工作下重新定位远程源,请键入git pull -r origin master。然后键入git push origin master

如果您不确定是否准备好推送,您可以随时进行试运行,git push origin master --dry-run并且实际上不会推送任何更改。

于 2013-03-12T21:38:33.487 回答