Que puis-je faire avec la corruption Git due à un objet manquant?
Je viens de cloner un dépôt sur un autre serveur distant et a couru dans un problème en essayant de le faire:
git clone [email protected]:blah/blah/docs.git
Cloning into docs...
remote: Counting objects: 343, done.
remote: error: unable to find 14f87a739828e4d489b0310a51e057b30333926e
remote: Compressing objects: 100% (325/325), done.
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: fatal: unable to read 14f87a739828e4d489b0310a51e057b30333926e
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
J'ai fait un peu de recherches et découvert git fsck
voici le résultat:
$ git fsck --full
error: sha1 mismatch 14f87a739828e4d489b0310a51e057b30333926e
error: 14f87a739828e4d489b0310a51e057b30333926e: object corrupt or missing
missing blob 14f87a739828e4d489b0310a51e057b30333926e
Toutes les autres personnes ayant les mêmes problèmes ont un lien brisé question ou quelque chose. Je suis encore assez nouveau avec Git, personne ne sait comment résoudre ce problème?
Je peux encore pousser à mes centrale dépôt distant, mais je ne peux pas cloner.
14f87a739828e4d489b0310a51e057b30333926e
est une tache qui est un abattement de fichier dans la racine du dépôt. J'ai essayé de supprimer ce fichier et pousser ces changements en vain.
Edit: Est-il possible d'importer historique de git à partir d'un autre repo? Je pense que je pourrais juste de commencer un nouveau repo et de copier mes fichiers, et ensuite à l'importation de la validation de l'histoire.
source d'informationauteur Cobby
Vous devez vous connecter pour publier un commentaire.
Si ce n'est qu'un seul fichier et il n'est pas emballé encore, vous devriez être en mesure de trouver dans
.git/objects/14/f87a739828e4d489b0310a51e057b30333926e
dans votre dépôt local. Vous pouvez copier ces fichiers vers le répertoire correspondant dans le référentiel sur votre serveur.Si il est emballé, vous devriez être en mesure de le décompresser à l'aide de
git unpack-objects
sur l'un des fichiers du pack dans.git/objects/pack/
. Après cela, la copie vers le serveur fonctionne comme décrit ci-dessus.Ici est presque la même question avec une très détaillée de la solution: Dépôt Github De La Corruption - Sha1 Collision
Simple pression ne résoudra pas ce problème, parce que git voit qu'il a du s'engager à ce que désigne le fichier endommagé et va supposer qu'il dispose de tous les objets dont il a besoin.
Avez-vous une autre référentiel avec le projet qui ne rapportent pas de problèmes avec fsck (et a le fichier en question)? E. g. sur votre machine locale? Que vous devriez essayer:
Puisque ce type d'erreur signifie que le fichier sur le disque est corrompu, je vous suggère de faire un vérification complète du système de fichiers, le disque et la mémoire (les données pourraient être endommagés dans la mémoire lorsque git a été de les enregistrer).
Note: bien que tous les disques ont au moins certains des sommes de contrôle, la plupart des puces de mémoire n'en ont pas, de sorte qu'un défaut de mémoire est plus susceptible de passer inaperçue qu'un disque faute. memtest86+ est une bonne façon de vérifier la mémoire.