Comment gérer git gc fatal: erreur refs / télécommandes / origine / erreur HEAD: échec de l’exécution du repack

J’ai frappé au hasard la liste aujourd’hui en essayant de ramasser les ordures.

$ git gc fatal: bad object refs/remotes/origin/HEAD error: failed to run repack 

Comment puis-je gérer cela?

Je ne comprends pas les ramifications de ceci, mais comme suggéré dans ce fil , quand j’ai rencontré ceci j’ai juste fait

 $ mv .git/refs/remotes/origin/HEAD /tmp 

(le garder juste au cas où) et ensuite

 $ git gc 

travaillé sans se plaindre; Je n’ai rencontré aucun problème.

Le problème que j’ai rencontré (qui est le même problème que @Stavarengo mentionné dans ce commentaire ci-dessus) est que la twig distante par défaut ( develop dans mon cas) avait été supprimée, mais était toujours référencée dans .git/refs/remotes/origin/HEAD .

L’ouverture de .git/refs/remotes/origin/HEAD dans mon éditeur a montré ceci:

 ref: refs/remotes/origin/develop 

Je l’ai soigneusement édité pour indiquer ma nouvelle twig par défaut et tout allait bien:

 ref: refs/remotes/origin/master 

L’indice qui m’a mis en garde est que l’exécution de git prune montré cette erreur:

 > git prune warning: symbolic ref is dangling: refs/remotes/origin/HEAD 

Je pensais que la solution était la suivante, car cela semblait fonctionner, mais il s’avère que cela ne résout pas le problème.

 git remote set-head origin --auto 

Après avoir vu la réponse de Trenton, j’ai regardé mon .git/refs/remotes/origin/HEAD et j’ai vu qu’il .git/refs/remotes/origin/HEAD également une ancienne succursale qui est maintenant supprimée.

Mais au lieu de modifier le fichier moi-même, j’ai essayé la solution de Ryan:

 git remote set-head origin --auto 

Il définit automatiquement le fichier sur la nouvelle twig, et git gc fonctionnait bien après cela.