Mon dépôt git est en quelque sorte devenu bancal - j'ai chargé msysgit ce matin et au lieu que le nom de la branche soit affiché après le répertoire actuel, il dit "((ref: re ...))", 'git status' signale tout comme un nouveau fichier, 'git log' et 'git reflog' me disent "fatal: mauvaise révision par défaut" HEAD "", et ainsi de suite.
Faire 'git reflog --all' ou 'gitk --all' me montre que le reste du dépôt est intact, mais il semble que la branche sur laquelle je travaillais vient de disparaître, ce qui explique pourquoi HEAD ne semble pas exister / pointer vers quoi que ce soit.
Je sais que git conserve toutes sortes de globes d'informations, et je suppose que mes commits viennent d'être orphelins, alors y a-t-il une commande qui me montrera ces commits afin que je puisse réinitialiser HEAD?
EDIT: Oh mon Dieu. J'ai découvert 'git fsck', et 'git fsck --full' signale "fatal: object 03ca4 ... is corrupted". Que diable puis-je faire à ce sujet?
EDIT: Oh cher oh cher. J'ai vérifié une autre branche, puis j'ai essayé de recréer la branche d'origine avec le même nom en utilisant 'git checkout -b lostbranchname', et git dit "erreur: impossible de résoudre les références / heads / lostbranchname: aucune erreur, fatal: échec pour verrouiller ref pour la mise à jour: Aucune erreur ". «Aucune erreur» doit être une erreur particulièrement désagréable. Il semble donc qu'il traîne toujours, mais qu'il ne peut pas être utilisé et qu'il ne peut pas être tué.
EDIT: Super duper oh cher. J'ai fait un tas de déballage, de reconditionnement et de remplacement de choses comme suggéré ici: Comment récupérer des objets Git endommagés par une panne de disque dur? , mais maintenant je reçois un autre hachage signalé comme corrompu, pour quelque chose d'aussi inoffensif que «git status». Je pense que tout est arrosé. Git est adorable et tout, mais je ne devrais pas avoir à faire face à ce genre de chose.
git checkout -b lostbranchname
- si vous ne vous souciez que du nom de la branche (pas du contenu de celle-ci), vous pouvez supprimer (ou renommer) manuellement.git/refs/heads/lostbranchname
- cela fera, espérons-le, l'affaire.