获取致命:推到远程回购时对象被损坏(Getting fatal: object is corrupt

2019-06-24 18:40发布

我有与Gitolite服务器安装到主机我的回购昨天我创建了一个新的回购协议,今天,当我试图推动更多的承诺我收到服务器:

fatal: object 86eeaa0c5a154ff3df34d6a43669930b9c6c7f59 is corrupted
error: unpack failed: unpack-objects abnormal exit
error: failed to push some refs to

由于回购是很新的我是不是太费心失去先前的承诺,所以我已经删除了我的两个本地和远程的回购协议,但仍然得到同样的错误。

正如我说我不是太在意我的维修器材提交历史,我只想得到它的工作!

Answer 1:

正如在评论中看到,任何额外的回购其创作过程中有一些问题(即推回时gitolite-admin回购与gitolite.conf文件中声明一个新的回购)

我以前没有注意到这一点,但我创造,我发现了以下错误一个新的回购协议:

remote: line 1 too long: command="/home/git/gitolite/src/gitolite... 
remote: FATAL: fingerprinting failed for /tmp/Cdug9Itivq 

但它创造了回购/home/git/repositories

此操作发生在编译后触发所谓ssh-authkeys

sub fp_file {
    return $selinux++ if $selinux; # return a unique "fingerprint" to prevent noise
    my $f = shift;
    my $fp = `ssh-keygen -l -f '$f'`;
    chomp($fp);
    _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/;
    $fp = $1;
    return $fp;
}

这意味着ssh-keygen -l -f <path_to_public_key.pub>不遵循正确的模式,如图中的“ 自我服务密钥管理 ”。

确保您的密钥等产生:

ssh-keygen -t rsa -f "${H}/.ssh/git" -C "Gitolite Admin access (not interactive)" -q -P ""

更新2015年4月:

如前所述通过starfry在“ Gitolite -远程:FATAL:指纹识别失败'keydir /' ”:

有一个变化在6.8版本中的OpenSSH密钥指纹格式:

添加FingerprintHash选项ssh(1)sshd(8)和等效的命令行标志的其他工具来控制用于密钥指纹算法。 从MD5的默认更改为SHA256和格式从十六进制为base64。

指纹现在有散列算法前缀。
新格式的例子:

SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE

请注意,可视主机键也将有所不同。

该gitolite的最新git的结帐是知道的,因为3月18日'15,这种新的格式。



文章来源: Getting fatal: object is corrupted when pushing to a remote repo
标签: git gitolite