GIT:`错误:无法找到<commit>`和`fatal:对象<commit>未找到`</commit> </commit>

时间:2015-01-28 16:22:00

标签: git bitbucket git-pull

我们在Bitbucket有一个回购,我们用它作为中央回购:

  1. 我们通过拉取请求或直接推送更改来更新它,
  2. 我们通过拉取来同步远程服务器中的最后更改。
  3. 大约一年以来,它一直像魅力一样,但现在我们无法从此仓库中提取更改来更新远程服务器:

    $ git pull origin
    remote: Total 0 (delta 0), reused 0 (delta 0)
    error: unable to find a1354e341c6773997c31a109e615d1bf9acb0119
    fatal: object a1354e341c6773997c31a109e615d1bf9acb0119 not found
    

    尽管如此,这个对象/提交可以从Bitbucket获得,也可以在我的本地机器上(我生成它然后推送到中央仓库)。

    我已经处理了这个问题超过8个小时。我对Git的了解几乎不足以做基本的事情所以我盲目地尝试了很多可能的解决方案,这些解决方案对于我在网络上发现的同样情况下的其他人有效,但是没有一个能够产生结果。我尝试过这样的事情:

    $ git gc
    $ git fsck --full
    $ git reflog expire --expire=0 --all
    

    我也重置为回购的先前状态并再次重新应用更改,但它也不起作用。

    这个子喷气机的任何线索?

    修改

    Jonathan Swinney问我在尝试克隆回购时会发生什么。嗯,这有点奇怪。如果我在本地计算机中克隆它,它可以正常工作,但它不能通过SSH在远程服务器上运行:

    $ git clone https://******@bitbucket.org/******/******.git
    Initialized empty Git repository in /root/a/idpro/.git/
    Password: 
    remote: Counting objects: 19853, done.
    remote: Compressing objects: 100% (7525/7525), done.
    remote: Total 19853 (delta 12910), reused 15843 (delta 10336)
    Receiving objects: 100% (19853/19853), 21.12 MiB | 6.00 MiB/s, done.
    Resolving deltas: 100% (12910/12910), done.
    error: refs/remotes/origin/master does not point to a valid object!
    error: Trying to write ref refs/heads/master with nonexistant object c16203dc93b1557fc1d01102ea460663a8112e50
    fatal: Cannot update the ref 'HEAD'.
    

    您可以注意到c16203dc93b1557fc1d01102ea460663a8112e50与上面的a1354e341c6773997c31a109e615d1bf9acb0119不一样,因为我从另一个本地仓库撤出并将更改推送到中央仓库,这是我尝试解决问题的一部分

2 个答案:

答案 0 :(得分:0)

原来是版本问题。一旦我们更新了我们的GIT版本,它的工作正常。

答案 1 :(得分:0)

sudo yum upgrade -skip-broken -y git

然后再做git -version它应该告诉你一些&gt; 1.8

然后尝试git pull origin。