49
$ git pull

remote: fatal: object 21f3981dd35fccd28febabd96f27241eea856c50 is corrupted
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header

これが失敗する理由はありますか?
実行するgit --bare fsck-objects --fullと、ぶら下がっているリンクが表示されますが、壊れたリンクは表示されません。またgit gc、何の役にも立ちませんでした。別のクローンから再クローン化またはプルすると、このエラーは表示されません。

4

7 に答える 7

30

ジュリアンが言ったように、https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+headerを参照してください

それは本当にメモリの問題である可能性があり、ここで解決策を失わないようにするために:

git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m" 
git config --global pack.threads "1"
于 2013-11-29T22:08:56.057 に答える
17

追加git config --global pack.window "0"は私のために働いた...次と一緒に

git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m" 
git config --global pack.threads "1"

理由:

Git クローンは、リポジトリのクローンを作成しながらデータを圧縮します

データ/ファイルを受信する前に、サーバー メモリ上のデータを圧縮します。

サーバーのメモリが不足している場合、オブジェクトのパック中に上記のエラーが発生します

次のように、サーバー上のオブジェクトをパックせずに git clone リポジトリを作成することで、問題を解決できます。

git config --global pack.window "0"

于 2015-02-01T14:44:29.237 に答える
13

答えはコメントにあるようです:git fsck

于 2012-05-08T04:51:29.893 に答える
6

このエラーが発生し、投稿に記載されているすべてのことを行うのに半日を費やしました:fsck、repack、gc、メモリオプションの設定。

また、この投稿に従ってください: http://git.kernel.org/cgit/git/git.git/tree/Documentation/howto/recover-corrupted-blob-object.txt?id=HEAD

しかし、最終的には、破損したオブジェクト (この場合は 21f3981dd35fccd28febabd96f27241eea856c50) を裸のリポジトリで見つけて、それを破損していないバージョン (プルしたローカル リポジトリの .git フォルダーにあります) に置き換えるだけで済みました。 /裸のリポジトリから複製されます。)

于 2014-01-09T13:12:02.930 に答える
1

これは私の問題を解決し、他の誰かを助けることを願っています. :) https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header

于 2013-11-20T14:48:46.930 に答える
0

私にとってこれは、git リポジトリをホストしているリモート サーバーに破損したオブジェクト/ファイルがあったためです。再パックしようとすると、メモリが不足していました。インスタンスのメモリをアップグレードしてから、ssh で戻って実行しました

git gc

ドキュメントへのリンクは次のとおりです。

https://git-scm.com/book/uz/v2/Git-Internals-Packfiles

于 2016-11-12T07:03:00.020 に答える