GIT无法读取压缩文件

时间:2018-05-08 18:47:48

标签: git

我试图通过git push production master使用git推送更改,然后压缩要推送的文件,然后给我这些错误作为回报:

Counting objects: 1861, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1808/1808), done.
fatal: unable to read 58926d52844e79d28435d8ea82bd8c7107e01a48
remote: fatal: early EOF

我很难理解为什么压缩失败,或者那是否发生了什么。

1 个答案:

答案 0 :(得分:0)

这令人费解。如果问题很遥远,我希望看到:

remote: fatal: unable to read <hash>

但实际输出是:

fatal: unable to read <hash>

我认为这意味着它是您自己的Git - 在这种情况下,您的builtin/pack-objects.c文件 - 抱怨here

        buf = read_object_file(&entry->idx.oid, &type, &size);
        if (!buf)
                die("unable to read %s", oid_to_hex(&entry->idx.oid));
        base_buf = read_object_file(&entry->delta->idx.oid, &type, &base_size);
        if (!base_buf)
                die("unable to read %s",
                    oid_to_hex(&entry->delta->idx.oid));

这可能来自于允许部分克隆存在的花哨的新“承诺对象”代码。有关详细信息,请参阅the partial clone documentation。你的克隆是否有任何异常,例如浅? (.git/shallow是否存在?)您正在运行什么版本的Git? (使用“过滤器”选项,承诺对象和狭窄克隆在Git 2.17中有部分支持。)

事件you can push to a different server本身并不重要,因为在压缩包文件以在git push上发送时,delta 你的 Git将使用delta取决于提交他们的 Git有。如果两个服务器上有不同的提交集,那么您自己的Git可以选择不同的delta-base来构建瘦包以发送给它们的Git。