Comment diagnostiquer et corriger git fatal: incapable de lire l'arbre
j'utilise git
pour gérer des fichiers sur un projet, et continuer à courir dans ce problème.
Quand je lance git status
je reçois le message
fatal: unable to read tree e2d920161d41631066945a3cbcd1b043de919570
si je comprends bien, je dois vérifier la sortie de git fsck
, et je reçois
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree e2d920161d41631066945a3cbcd1b043de919570
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 9b0dd389bd7f9e8d257395d57e0881b7957f9698
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 9e288a4ad60d63f342dfd18237980674426aa725
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree 2a04647337089f554fab8c49cfd37149e5f4fc9f
broken link from tree e09a42f248afff64336fbbec2523df97c26451ac
to tree ea16658b45ce961adc3c3f519b0e8d9672918ca8
avec beaucoup de messages missing blob
.
suite à diverses ressources (E. g Git-Broken Links, Missing & Arbres pendants ) j'ai simplement re-cloné le projet de github
et j'ai recommencé.
une fois que j'ai re-cloné le projet, tout est bon pour quelques commit
s, et puis le problème se pose à nouveau. Re-clonage de tous les temps ne semble pas être optimale, et semble aller à l'encontre de l'idée d'utiliser des git
, et j'aimerais essayer de comprendre ce qui se passe. Comment puis-je diagnostiquer et résoudre ce problème?
4 réponses
suivant Ma ancienne recommandation , il se résume à être en mesure de trouver un repo qui contient effectivement les éléments manquants (ici plein arbres).
C'est ce qui est montré dans " comment corriger un dépôt git corrompu? ".
mais si un clone complet ne résout pas le problème, alors il peut être:
- une corruption de l'opération sur le GitHub côté (contact GitHub soutien vérifier.)
- une sorte de corruption du côté du client (Votre Ubuntu). Assurez-vous de vérifier si le problème persiste avec la dernière version de Git (1.8.5.2-1) d'un personnalisé PPA (Personal Package Archive) .
mise à jour juillet 2016, avec Git 2.10 bientôt sortir, vous avez maintenant:
git fsck --name-objects
Voir " Comment fixer erreur git lien brisé d'arbre en arbre? " pour plus d'.
je commencerais avec un nouveau clone, puis je lancerais git fsck
sur le clone inchangé, intact. Je me demandais (comme ci-dessus) si votre clone initial est corrompu, mais d'une manière qui permet d'effectuer quelques opérations avant d'abandonner les arbres.
C'est peut-être ou peut-être pas le problème soulevé à l'origine ici, mais notez que vous verrez une erreur" fatal: unable to read tree " de la part de git si le compte utilisateur sous lequel la commande git est exécutée n'est plus capable de lire tous les fichiers vérifiés depuis votre dépôt en raison d'un problème de propriété/permissions.
donc dans de nombreux cas la première chose à vérifier devrait être que vous avez la propriété et les permissions définies correctement sur les fichiers dans votre arbre de travail, comme cela peut bien corriger problème. :)
quelque chose qui a juste fonctionné pour moi était de cacher mes changements, faire un coup de pied au cul, et ensuite enlever les changements de la pile de caches. Ma corruption était peut-être superficielle, donc ça ne marchera probablement pas pour tout le monde, mais ça vaut le coup d'essayer.
Voici la sortie que j'ai eu quand j'ai planqué:
work@home ~/code/project $ git stash
fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188
fatal: unable to read tree 5fd5f4d0425b42e5b478773fa643dd6fd4918188
Saved working directory and index state WIP on master: d93430c Generic commit msg.
HEAD is now at d93430c An older generic message.
après ça j'ai tiré et puis j'ai sauté et ça s'est nettoyé tout seul. Encore une fois, YMMV.