Accueil·Messages d’erreur

git · Git

Le message

fatal: bad object 8a3f21c

Ce que cela veut dire

Le nom fourni ne se résout vers rien que git puisse lire : soit l'objet n'est pas dans ce dépôt, soit il y est et il est abîmé. Cela arrive avec un hachage copié d'un autre clone ou d'un clone superficiel, avec un hachage tronqué trop court, ou avec un objet réellement corrompu après un incident disque. git fsck --full signale les objets manquants et cassés en lecture seule, et un hachage venu d'ailleurs exige un git fetch avant que l'objet existe ici. Si fsck signale bien une corruption, recloner est plus rapide et plus sûr que réparer — copiez d'abord vos fichiers non committés en lieu sûr.

Le correctif

git fsck --full
Émis par
git
Git
29

Presque toutes les erreurs de git sont un refus qui signifie « faire cela depuis cet état ferait perdre quelque chose » ; fatal: veut dire que git s'est arrêté sans rien modifier, et les lignes hint: sous la première portent souvent le vrai remède.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « fatal: bad object 8a3f21c » ?

Le nom fourni ne se résout vers rien que git puisse lire : soit l'objet n'est pas dans ce dépôt, soit il y est et il est abîmé. Cela arrive avec un hachage copié d'un autre clone ou d'un clone superficiel, avec un hachage tronqué trop court, ou avec un objet réellement corrompu après un incident disque. git fsck --full signale les objets manquants et cassés en lecture seule, et un hachage venu d'ailleurs exige un git fetch avant que l'objet existe ici. Si fsck signale bien une corruption, recloner est plus rapide et plus sûr que réparer — copiez d'abord vos fichiers non committés en lieu sûr.

Q. Comment le corriger ?

git fsck --full — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

git. Cela relève de Git, et le message compte 4 mots.

Erreurs voisines