这实际上是怎么产生的?
我现在正在自己的一个回购工作,所以这是我的工作流程:
然后,当我这样做时,git status它告诉我我的分支是由X提交提前(可能与我提交的提交数量相同).是因为当您推送代码时它实际上并不更新本地缓存的文件(在.git文件夹中)?git pull似乎'修复'这个奇怪的消息,但我仍然好奇它为什么会发生,也许我使用git错了?
包括在消息中打印的分支
我当地的分公司领先于大师
你在哪里推/拉当前分支
我正在推送GitHub并拉到我当时正在处理的任何一台计算机上,我的本地副本总是完全是最新的,因为我是唯一一个正在处理它的人.
它实际上并没有检查远程仓库
这就是我的想法,我想我会确保我对它的理解是正确的.
你传递一些额外的论据吗?
不是我能看到的,也许我的结尾有一些有趣的配置?
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud) 我是一个Git新手.我最近将一个Rails项目从Subversion移到了Git.我按照这里的教程:http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/
我也在使用unfuddle.com来存储我的代码.我在火车上下班时使用Mac笔记本电脑进行更改,然后在使用以下命令进行网络连接时将它们推到一起:
git push unfuddle master
Run Code Online (Sandbox Code Playgroud)
我使用Capistrano进行部署,并使用master分支从unfuddle存储库中提取代码.
最近,当我在笔记本电脑上运行"git status"时,我注意到以下消息:
# On branch master
# Your branch is ahead of 'origin/master' by 11 commits.
#
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么.我以为我的笔记本电脑是原产地...但不知道我最初是从Subversion拉出来还是推送到Unfuddle,这是导致消息显示的原因.我怎么能够:
我的mac正在运行Git版本1.6.0.1.
当我git remote show origin按照dbr的建议运行时,我得到以下内容:
~/Projects/GeekFor/geekfor 10:47 AM $ git remote show origin
fatal: '/Users/brian/Projects/GeekFor/gf/.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
当我git remote -v按照Aristotle Pagaltzis的建议跑步时,我得到以下信息:
~/Projects/GeekFor/geekfor 10:33 AM $ git …Run Code Online (Sandbox Code Playgroud) 所以情况如下:
$ git status #On
branch master
#你的分支在[x]提交之前位于'origin/master'之前.
#
关于SO的问题已有几个问题,但似乎没有一个问题专门针对我所拥有的场景类型.其中一个问题的答案最接近,但没有详细说明.
我会直接引用它:
如果在执行"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并检查一些事情,包括a 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
Run Code Online (Sandbox Code Playgroud) 我确实看到了其他类似的问题,但我真的不明白为什么会这样.现在,我正在使用git reset --hard HEAD然后手动添加我的更改.建议的解决方案似乎是git pull origin master?但在那之后我仍然得到同样的信息.怎么了?我该如何合并?我对GIT来说还是比较新的
$ git pull origin master
Nodester!
Enter passphrase for key '/home/jiewmeng/.ssh/id_rsa':
From nodester.com:/node/git/jiewmeng/10267-f62c0a21d1a9d75ab7b6ace5858921d0
* branch master -> FETCH_HEAD
Merge made by the 'recursive' strategy.
$ git branch -a
* master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)