这是我的工作流程:我目前独自在一个仓库中工作:
- 更改文件
- 提交(commit)
- 重复1-2直到满意
- 推送(push)到主分支(master)
然后当我运行git status
时,它告诉我我的分支比远端的主分支(assumed master)超前了X个commit(大概是我所做的提交数量)。这是因为当你推送(push)代码时,它实际上并没有更新你本地缓存的文件(在.git文件夹里)?git pull
似乎能够“修复”这个奇怪的消息,但我仍然很好奇为什么会发生这种情况。也许我在使用git时有问题?
包括打印消息所在的分支
我的本地分支比主分支(a.k.a. master)超前
你推送/拉取当前分支的位置在哪里
我正在推送到GitHub并拉取到我当前正在工作的任何计算机上,我的本地副本始终是最新的,因为只有我在工作。
它实际上没有检查远程仓库
这就是我想的,我想确保我对它的理解是正确的。
你有没有传递一些额外的参数(arguments)给它?
没有我能看到的,也许在我的配置(config)上发生了一些有趣的事情?
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
push
操作的?你的远程和分支配置设置是什么? - CB Baileygit status
不会检查远程仓库,但git pull
会。如果您有一个用于推送的跟踪分支的存储库,git push
将在推送成功后更新您的本地跟踪分支以反映远程分支的新状态。这就是为什么我问问者的配置情况,因为如果没有正确地进行操作,那么可能存在配置错误。 - CB Baileygit status
?真的吗?我的git status
从来没有告诉我我的分支超前了多少...你有传递额外的参数吗? - hasengit status
不会去远程仓库检查远程分支是否有更新,它会告诉你本地分支相对于你 本地存储的 远程跟踪分支落后了多少。问题在于正常的git push
(以及 fetch 和 pull)应该会更新远程跟踪分支,但是对于提问者来说,这似乎没有起作用。要查看原因,我们需要查看正在使用的git push
的确切形式和本地存储库的配置,但由于提问者已经接受了答案,现在我无法看到这种情况发生。 - CB Bailey