Git pull error-l'objet distant est corrompu
$ 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
des idées pourquoi cet échec?
Quand je run git --bare fsck-objects --full
je vois juste des liens pendants mais pas de liens cassés. Aussi git gc
n'a pas aidé en aucune façon. Quand je me redresse ou que je tire d'un autre clone, Je ne vois pas cette erreur.
7 réponses
Julien a dit voir https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header
Il ne peut vraiment être un problème de mémoire, et pour nous assurer de ne pas perdre de la solution, la voici:
git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
ajouter git config --global pack.window "0"
a fonctionné pour moi...avec la suite
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
Raison:
le clone Git comprime les données tout en clonant le dépôt
il comprime les données sur la mémoire du serveur avant de recevoir les données/fichiers.
si le serveur n'a plus de mémoire, vous obtiendrez l'erreur ci-dessus en empaquetant les objets
vous pouvez corriger le problème en faisant cloner git le dépôt sans empaqueter les objets sur le serveur avec les éléments suivants.
git config --global pack.window "0"
je Viens de recevoir cette erreur, et passé une demi journée à faire toutes les choses que décrit dans le post : fsck, repack, gc, la configuration des options de mémoire.
a également suivi ce billet: http://git.kernel.org/cgit/git/git.git/tree/Documentation/howto/recover-corrupted-blob-object.txt?id=HEAD
Mais à la fin, c'était aussi simple que de trouver l'objet endommagé(21f3981dd35fccd28febabd96f27241eea856c50 dans ce cas) dans le dépôt nu et de le remplacer par le non version endommagée (que l'on peut trouver dans le .dossier git de n'importe lequel des dépôts locaux qui a tiré/cloné du dépôt nu.)
cela résout le problème pour moi et hope aide quelqu'un d'autre. :) https://confluence.atlassian.com/display/FISHKB/Git+indexing+fails+due+to+bad+pack+header
dans le client,essayez de faire comme ceci:
git config --global pack.windowMemory "100m"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
git config --global pack.window "0"
ou dans le serveur git, essayez ceci:
modifier: /home/git/repositories/***.git/config
,ajouter ci-dessous:
[pack]
window = 0
Pour moi, c'était parce que mon serveur distant hébergeant le repo git avait un objet endommagé/fichier. Quand j'ai essayé de faire mes bagages, il manquait de mémoire. J'ai mis à jour ma mémoire d'instance et puis ssh-ed de retour et couru
git gc
Voici le lien vers la documentation: