簡體   English   中英

致命:推送到遠程倉庫時對象已損壞

[英]Getting fatal: object is corrupted when pushing to a remote repo

我有一台安裝了Gitolite的服務器來托管我的存儲庫我昨天創建了一個新的repo,今天當我嘗試將更多提交推送到我得到的服務器時:

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

由於回購是相當新的,我不會因為丟失以前的提交而煩惱所以我刪除了我的本地和遠程倉庫,但仍然得到相同的錯誤。

正如我所說,我不太關心維護我的提交歷史,我只想讓它再次運行!

正如評論中所見,任何額外的倉庫在其創建過程中都存在問題(即,當使用gitolite.conf文件推回新的gitolite-admin時,推回gitolite-admin gitolite.conf

之前我沒有注意到這一點,但是當我創建一個新的repo時,我收到以下錯誤:

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

但它正在/home/git/repositories創建repo

此操作在名為ssh-authkeys的后編譯觸發器中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 - remote:FATAL:指紋識別'keydir /'失敗”中所提到的

版本6.8中OpenSSH中的密鑰指紋格式發生了變化:

FingerprintHash選項添加到ssh(1)sshd(8) ,並將等效的命令行標記添加到其他工具以控制用於關鍵指紋的算法。 默認值從MD5更改為SHA256,格式從十六進制到base64。

指紋現在具有前置的哈希算法。
新格式的一個示例:

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

請注意,可視主機鍵也會有所不同。

自15年3月18日以來, 最新的gitolite git結賬了解這種新格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM