所以这是情况:
$ git状态#在分支主管上#通过[x]次提交,您的分支位于'origin / master'之前。#
已经有关于此的几个问题,但是似乎没有一个问题专门针对我所遇到的情况。 This answer到其中一个问题最接近,但没有详细介绍。
我将逐字引用:
如果执行“ git pull远程分支”后收到此消息,请尝试通过“ git fetch”进行跟踪。
提取似乎更新了远程分支的本地表示,当您执行“ git pull远程分支”时并不一定会发生。
该提示确实有效。但是“不一定发生吗?”为什么不?我需要明白这一点。拉不做什么?
我不想解决这个问题,所以这里是我的详细情况:
涉及三台计算机。我开发的Mac,我的git repo(即原始服务器/主服务器)所在的家庭服务器以及从该服务器提取的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
因此,情况如下:$ git status#在分支master上#通过[x]提交,您的分支在'origin / master'之前。 #关于SO的问题已经有好几个了,但似乎没有一个问题...
git pull origin
而不是git pull origin master
,则Your branch is ahead of 'origin/master' by ... commits.
消息不会有问题。