2

gitリポジトリをubuntuサーバーから別のubuntuサーバーにプッシュしているときに、次のエラーが発生します。

Pushing to gitosis@xxx:yyy
Enter passphrase for key '/home/ngrislain/.ssh/id_rsa': 
Counting objects: 88, done.
Compressing objects: 100% (50/50), done.
error: inflate returned -551), 22.15 MiB | 1.13 MiB/s   
error: pack-objects died of signal 13MiB | 1.10 MiB/s   
error: failed to push some refs to 'gitosis@xxx:yyy'

私のディスクはいっぱいではありません、私はまだ引っ張ることができます...誰かがこれを理解していますか?

ありがとう、

4

1 に答える 1

1

簡単な答え:リモートリポジトリが壊れています。

gitリポジトリ内のほとんどのオブジェクト(コミット、古いファイルの内容など)は.packファイルにパックされています。gitがそれらのオブジェクトにアクセスする必要があるときはいつでも、最初にそれらを解凍する必要があります。パックされたファイルが破損している場合、gitはそれらのオブジェクトにアクセスできなくなり、不幸になります。

このような破損したパックファイルが含まれているように見えるリモートリポジトリにプッシュしようとしました。リモートエンドはそれを開梱する必要がありましたが、それはできませんでした。したがって、プッシュを統合できませんでした。

リモートリポジトリを修正する必要があります。gitは分散VCSであるため、これを行う1つの方法は、独自のリポジトリからクローンを作成して、サーバー上に新しいリポジトリを作成することです。

関心のある詳細レベルに応じて、git-unpack-objectsのマニュアルページまたはzlib.cのgitソースコードint git_inflate(...)を参照することもできます。これには、失敗したinflateの呼び出しが含まれています。

壊れたリポジトリを修正する方法についてのGitFaqもあります。

于 2013-01-19T20:55:34.880 に答える