web-dev-qa-db-fra.com

fatal: impossible de résoudre HEAD comme référence valide

Je deviens fatal: échec de la résolution de HEAD comme référence valide chaque fois que j'essaie de valider.

J'ai essayé

echo ref: refs/heads/master >.git/HEAD

mais ça ne marche pas

A également essayé

git commit

ne fonctionne pas non plus à partir de sources ci-dessous

Git 'fatal: aucune référence de ce type: HEAD'git tag: fatal: échec de la résolution de 'HEAD' en tant que référence valide

S'il vous plaît, aidez-moi ... Tout mon historique de commit a également disparu

11
idurvesh

J'ai également rencontré le même problème ... et j'ai résolu en suivant

  1. Clonez votre même projet dans un autre dossier
  2. Copié le dossier .git du projet cloné
  3. Remplacez enfin le dossier .git d'origine du projet par le dossier que vous avez copié.

Modifier par Sudip Bhandari

Pourquoi ça marche?

Les référentiels git cassés sont souvent le résultat d'une corruption du système de fichiers en raison d'une panne de courant abrupte ou d'autres anomalies. Étant donné que git stocke toutes les informations dans le dossier .git et que celles-ci sont corrompues, git ne reconnaît plus le référentiel.

Avertissements

Tout ce qui est stocké dans votre dossier .git précédent aura disparu. Les éléments de configuration tels que les noms de référence pour vos télécommandes (si vous en avez plusieurs), etc. devront être reconfigurés.

20
Pravesh Khatri

Mon problème était avec

git init
git add .

A essayé

git reset
  fatal: Failed to resolve 'HEAD' as a valid ref.
git reset --hard
  fatal: Failed to resolve 'HEAD' as a valid ref.

Résolu avec

git rm -r --cached .

Enviroment

git version 1.7.5.4

Ubuntu 11.10

1
hrvoj3e

Dans mon cas, je me suis retrouvé avec deux branches avec le même nom après un changement de nom de branche. En supprimant l'un d'eux dans . Git/refs/heads tout est revenu à la normale.

1
Michael Schmid

J'ai eu ce problème après un écran bleu de la mort incident - c'était donc similaire à ce que Sudip Bhandari a dit ci-dessus.

  • J'ai regardé dans .git/refs/heads/<mybranch> et a constaté que l'entrée était corrompue (illisible). Ce fichier est censé contenir l'identifiant de validation complet de la branche HEAD.
  • J'ai cloné un nouveau référentiel et copié .git/refs/heads/<mybranch> à partir du nouveau contrôle sur celui corrompu (je suppose que j'aurais pu le réparer en collant un récent commit-id depuis stash ou autre).
  • de retour dans le référentiel d'origine, j'ai fait git rm -r --cached . et git reset --hard pour nettoyer, puis j'ai trouvé que tout était redevenu normal.
1
Oscar Bravo

La meilleure solution à ce problème:

' fatal: impossible de résoudre HEAD comme référence valide '

  1. Ouvrez le projet sur Eclipse IDE

  2. Allez dans le menu Équipe du projet et sélectionnez Basculer vers, enfin vous pouvez maintenant basculer votre branche détachée actuelle vers votre choix.

Comme capture d'écran ci-dessous:

enter image description here

0