git fetch "无法找到" "对象...未找到" 用于存储的错误

7
我有一个简单的备份系统,使用--bare(可能是--mirror)创建了一个git克隆,并且每小时运行git fetch。这个想法是,如果我的工作副本出现问题,我可以在克隆中备份我的工作。
这个系统运作良好,但是当我运行git fetch时,会出现错误。
$ git fetch
remote: Total 0 (delta 0), reused 0 (delta 0)
error: unable to find 2a8c978c41c362c3f0c42775c9124780a0e71e08
fatal: object 2a8c978c41c362c3f0c42775c9124780a0e71e08 not found

当我查看原始存储库中的对象时,它是一个stash:

$ git show 2a8c978c41
commit 2a8c978c41c362c3f0c42775c9124780a0e71e08
Merge: 808f6e4 ddc28da
Author: Russell Silva <russell.silva@blahblah.com>
Date:   Wed Feb 29 10:19:26 2012
    WIP on experimental: 808f6e4 blah blah blah

看起来抓取(fetch)大部分是成功的;git log <branch> 显示分支是最新的。但这些错误很麻烦。我该如何消除它们?如何避免它们再次出现?
请注意,这个问题与这个不同,那里有人实际上想要获取一个贮藏(stash)。如果我的 git fetch 命令获取了贮藏(stash),那也没关系。
编辑:请求完整的输出:git fetch --verbose
$ git fetch --verbose
remote: Total 0 (delta 0), reused 0 (delta 0)
From /home/russell/work/russells-project
 = [up to date]      some-branch -> some-branch
error: unable to find 2a8c978c41c362c3f0c42775c9124780a0e71e08
fatal: object 2a8c978c41c362c3f0c42775c9124780a0e71e08 not found

我已经在输出中更改了名称以隐藏私人信息,并消除了所有但一个"[up to date]"行 - 对于存储库中的每个分支都有数十个这样的行。

此外,我的远程位于本地文件系统上; 它没有通过网络进行访问。

$ git remote --verbose
origin  /home/russell/work/russells-project (fetch)
origin  /home/russell/work/russells-project (push)

当有一个stash时,它是否总是失败?也许git fetch的详细输出会有所帮助,因为这很奇怪。 - CharlesB
@CharlesB:我不确定它是否总是在stash时失败;我需要进行更广泛的测试。提供的 git fetch 输出是该命令的完整输出。 - Russell Silva
你可以通过执行 git fetch --verbose 命令来获得更详细的输出。 - CharlesB
另外,协议是什么?是“原始文件”,还是git://或http://? - CharlesB
某些地方必须以某种方式引用stash。您是否尝试过在Git文件或至少.git/refs中进行暴力搜索,以查找stash的SHA1?也许这可以揭示缺失的链接。 - bjhend
我们没有访问您的代码库,如何重现您遇到的错误?您有什么步骤可以提供给我们来诱发这个问题吗? - Greg Bacon
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接