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

时间:2010-02-26 15:22:25

标签: git

  

可能重复:
  'git pull origin mybranch' leaves local mybranch N commits ahead of origin. Why?

我在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' leaves local mybranch N commits ahead of origin. Why?),一般的建议似乎是拉动然后推动。但这对我不起作用 - 拉动告诉我,我是最新的。我也试过'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服务器上添加一个虚拟文件(也检查出master),提交并推送它,然后在本地将其拉下来。一切都很好。但我仍然无法推动。谁能告诉我我需要做些什么来解决这个问题?我甚至不知道说我相对于存储库快速转发是什么意思。

欢呼,最大

编辑 - 为ebneter和dan(谢谢)

> 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的新手,所以我不能很好地解释这个,但我想知道提交是否以root身份完成(顶部的第6行),'merge branch master ...'可能已经翘起事情。我不记得以root身份做提交,感到困惑......

丹 - 我认为你是对的:当我试图推动时我得到的错误是

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 repo的正确地址)不是   足够。避免在之后出现“Your branch ahead ahead”警告消息   一个git pull,你首先需要定义一个分支的远程名称。   因此我的建议是:输入git config branch.master.remote   yourGitHubRepo.git,然后尝试git pull和git状态,看看是否   问题仍然存在 - VonC 11月16日20:22

1 个答案:

答案 0 :(得分:8)

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

git fsck --full

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

git repack remotes/origin/master

在本地仓库上运行它。

如果这些都没有解决问题,请尝试使用Google搜索git "unpacker error"获取其他想法。我个人从来没有遇到过这个问题,所以不幸的是我能给出的所有建议。