“你的分支在3次提交之前领先于'origin / master'。”

可能重复:
'git pull origin mybranch'离开本地mybranch N提前提交。 为什么?

我在git中获得这个信息

>git status
# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
#
nothing to commit (working directory clean)

而且,当我尝试推,我得到这个:

fatal: failed to write object
error: unpack failed: unpacker exited with error code
To ssh:<my repository>
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh:<my repository>'

我一直在使用这个搜索引擎,(例如,这里有一个关于它的stackoverflow问题 - 'git pull origin mybranch'离开本地mybranch N提前提交,为什么?),一般的建议似乎是做一个pull然后推。 但是这对我不起作用 - 拉我告诉我我是最新的。 我也试过'git fetch origin'(没有)。 我也试过:

> git remote show origin
* remote origin
  URL: ssh://<my repository>
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast forwardable)

如果有帮助任何人。

我还尝试在我们的Web服务器上添加一个虚拟文件(它也检查主服务器),提交并推送它,然后在本地将其拉下。 这一切运行良好。 但我仍然无法推动。 任何人都可以告诉我我需要做什么来解决这个问题吗? 我甚至不知道我已经快速转发到存储库的意思是什么。

欢呼,最大

编辑 - 为ebneter和丹(谢谢)

> git config -l
user.name=Max Williams
push.default=tracking
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=ssh://<my repo url>
branch.master.remote=origin
branch.master.merge=refs/heads/master

gitk的屏幕截图位于http://dl.dropbox.com/u/846812/gitk.png

  • 我是git的新手,所以我不能很好地解释这一点,但我想知道如果作为根(在顶部的第6行),'合并分支大师......'做的提交可能已经把事情搞砸了。 我不记得做一个提交作为根,困惑...
  • 丹 - 我认为你是对的:我试图推动的错误是

    error: unable to create temporary sha1 filename ./objects/05: File exists
    
    fatal: failed to write object
    error: unpack failed: unpacker exited with error code
    

    编辑 - 从我之前提到的其他stackoverflow问题的这一评论确实修复它:

    单独使用git remote(显示GitHub回购的正确地址)是不够的。 为避免在git pull之后出现“您的分支在前”的警告消息,您首先还需要为分支定义远程名称。 因此我的建议是:输入git config branch.master.remote yourGitHubRepo.git,然后尝试git pull和git状态,看看问题是否仍然存在。 - VonC 11月16日20:22


    看起来您遇到的问题与“远程拒绝”行中提到的“解包错误”有关。 出于某种原因,远程端未能解开发送给它的对象。 这可能是由许多因素造成的。 有些事情你可以尝试:

    git fsck --full
    

    在本地和远程运行(如果可能)。

    git repack remotes/origin/master
    

    在本地回购中运行。

    如果这两者都不能解决问题,请尝试在其他想法上使用git "unpacker error" 。 我个人从未遇到过这个问题,所以不幸的是我可以提供的所有建议。

    链接地址: http://www.djcxy.com/p/543.html

    上一篇: "Your branch is ahead of 'origin/master' by 3 commits."

    下一篇: git: Your branch is ahead by X commits