繁体   English   中英

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

[英]How come “git pull origin master” doesn't actually change the files in my computer's directory?

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

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

我怀疑 master 没有跟踪upstream/master (如here ),这意味着git pull upstream master获取来自upstream提交,但不合并任何东西。
您可以手动合并这些: git merge upstream/master

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

分叉和上游

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM