![](/img/trans.png)
[英]How to check if git.Repo().remotes.origin.pull() actually updated the directory with new code/files
[英]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 中, commit
和push
不是一回事。
输入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.