git · Git
Le message
error: cannot lock ref 'refs/remotes/origin/main': is at 8a3f21c but expected 1c2d3e4
Ce que cela veut dire
Au moment d'écrire une nouvelle valeur dans une référence de suivi distant, git y a trouvé une valeur différente de celle qu'il venait de lire et a refusé d'écraser. Cela arrive souvent quand votre éditeur fait un fetch en arrière-plan pendant que vous en faites un aussi, ou quand quelqu'un a fait un force push et que vos références de suivi sont décalées. Relancer le fetch suffit généralement. git remote prune origin nettoie les références de suivi dont les branches n'existent plus en amont ; il ne supprime que les copies internes à votre dépôt et ne touche jamais une branche du serveur.
Le correctif
git remote prune origin- Émis par
- git
- Git
- 29
Presque toutes les erreurs de git sont un refus qui signifie « faire cela depuis cet état ferait perdre quelque chose » ; fatal: veut dire que git s'est arrêté sans rien modifier, et les lignes hint: sous la première portent souvent le vrai remède.
Lire un message d’erreur
- Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
- S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
- Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
- La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
- Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.
Questions fréquentes
Q. Que veut dire « error: cannot lock ref 'refs/remotes/origin/main': is at 8a3f21c but expected 1c2d3e4 » ?
Au moment d'écrire une nouvelle valeur dans une référence de suivi distant, git y a trouvé une valeur différente de celle qu'il venait de lire et a refusé d'écraser. Cela arrive souvent quand votre éditeur fait un fetch en arrière-plan pendant que vous en faites un aussi, ou quand quelqu'un a fait un force push et que vos références de suivi sont décalées. Relancer le fetch suffit généralement. git remote prune origin nettoie les références de suivi dont les branches n'existent plus en amont ; il ne supprime que les copies internes à votre dépôt et ne touche jamais une branche du serveur.
Q. Comment le corriger ?
git remote prune origin — avant de le lancer, vérifiez plus haut ce que cette commande jette.
Q. Quel outil émet cela ?
git. Cela relève de Git, et le message compte 11 mots.