所以情况如下:
$ git status
# On branch master
# 你的分支在 'origin/master' 之前 [x] 提交。
#
已经有几个关于这个的问题,但似乎没有一个专门解决我所拥有的场景类型。对其中一个问题的回答最接近,但没有详细说明。
我将逐字引用它:
如果您在执行“git pull remote branch”后收到此消息,请尝试使用“git fetch”跟进。
Fetch 似乎更新了远程分支的本地表示,当您执行“git pull remote branch”时不一定会发生这种情况。
该提示确实有效。但是“不一定会发生?” 为什么不?我需要明白这一点。什么是拉不做?
我不想接手这个问题,所以这是我的详细场景:
涉及三台计算机。我开发的 Mac,git repo(即 origin/master)所在的家庭服务器以及从该服务器提取的 Webfaction 帐户。
我git push origin master
只在 Mac 上提交。作为正常工作流程的一部分,在 Webfaction 上运行的唯一命令是git pull origin master
(作为 Fabric 部署脚本的一部分)。我不在那里修改代码。我是一个孤独的开发者,所以其他人也不是。
我时不时地登录到 Webfaction 并检查一些东西,包括git status
. 不可避免地,我总是收到“你的分支在前面......”的消息。运行git fetch
使消息消失。
我即将添加git fetch
到 Fabric 脚本中以解决此问题,但我想知道为什么需要这样做,尤其是在源/主的仅拉式克隆上。尽管我每天都使用基本功能,但我对 Git 的了解并不深入,因此对新手友好的解释将不胜感激。
根据要求更新,相关位来自config
:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@[server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master