web-dev-qa-db-fra.com

Git ne peut pas verrouiller la référence 'HEAD': impossible de résoudre la référence HEAD

J'essaie de valider les modifications dans mon référentiel mais le message d'erreur ci-dessous s'affiche:

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Contronym\AppData\Local\Temp\bkdweixb.mnu
fatal: cannot lock ref 'HEAD': unable to resolve reference HEAD: Invalid argument

Completed with errors, see above.

J'utilise bitbucket et SourceTree.

Quelle est la raison de l'échec de cette validation? J'ai pu commettre très bien les 3 derniers engagements de la semaine écoulée. Puis, tout à coup, je reçois cette erreur.

MODIFIER

J'ai couru git gc et voici les résultats:

$ git gc
error: bad ref for HEAD
error: bad ref for HEAD
error: inflate: data stream error (unknown compression method)
fatal: loose object 53b65bd9b4fec7f6a7b0b3313c68199a18804327 (stored in .git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327) is corrupt
error: failed to run repack

J'ai vérifié le répertoire .git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327 mais ça n'existe pas. Il y a deux autres fichiers, mais b65bd9b4fec7f6a7b0b3313c68199a18804327 n'existe pas.

13
Jake Miller

J'ai eu le même problème et la seule solution que j'ai trouvée était de naviguer jusqu'à la tête de la manière suivante:

.git/refs/heads/branch_name 

Et j'ai supprimé le fichier de tête. Puis je suis allé à la console et j'ai utilisé la commande:

git reset

Ensuite, tous les fichiers ont été décomposés, ajoutez-les et validez-les ensuite. 

6
Vasilisfoo

J'ai eu le même problème, cela a fonctionné pour moi:

Étape 1) - accédez à .git\logs\refs\heads et ouvrez le document nommé YOUR_BRANCH, copiez maintenant les numéros ID situés devant votre nom d'utilisateur et email-

Étape 2) - accédez à .git\refs\heads et ouvrez le document nommé YOUR_BRANCH, supprimez la ligne et collez le ID dans.

J'espère que cela fonctionne pour vous 

1
Rafael Marques

Travaillé pour moi, dans le terminal entrer: (branche en fonction de vos désirs lul)

echo ref: refs/heads/master >.git/HEAD
1
ASCII ALIEN

J'ai eu le même problème après avoir appelé les commandes git avec l'utilisateur root à l'intérieur de la copie de travail. Ainsi, le propriétaire et le groupe de propriétaires de divers fichiers sous .git/ont été changés en "root". 

Lorsque je suis revenu sur mon compte utilisateur, git ne pouvait plus gérer ces fichiers, à cause du manque d'autorisations. 

Cela a fonctionné à nouveau, après avoir réinitialisé les autorisations avec 

Sudo chown -R [MY_USER]:[MY_GROUP] .git
0
dev-null

Lorsque je me heurte à cela, je me contenter de cloner le projet dans un nouveau répertoire de fichiers et d’extraire le dossier heads situé dans .git\refs\heads et de remplacer le fichier head original dans le répertoire qui pose problème. Ensuite, supprimez simplement le nouveau clone que vous avez créé (car il ne dispose évidemment pas des mises à jour que vous essayez de pousser).

0
David La Grange