576 votes

Git et le méchant "error : cannot lock existing info/refs fatal" (erreur : ne peut pas verrouiller les informations/références existantes)

Après avoir cloné à partir d'un dépôt git distant (chez bettercodes) J'ai fait quelques changements, j'ai commité et j'ai essayé de pousser :

git push origin master

Des erreurs avec :

erreur : impossible de verrouiller les informations/références existantes
fatal : git-http-push a échoué

Ce cas concerne un référentiel déjà existant.

Ce que je faisais avant, c'était :

  1. git config –global http.sslVerify false
  2. git init
  3. git remote add [url]
  4. git clone
  5. modifier les données
  6. git commit

Chez 'bettercodes', je n'ai pas accès au journal git.

J'utilise Windows. L'erreur détaillée était :

C:\MyWorkStuff\Projects\Ruby\MyProject\>git push origin master
Unable to create branch path https://user:password@git.bettercodes.org/myproject/info/
error: cannot lock existing info/refs
fatal: git-http-push failed

J'ai cloné avant, puis changé le code et commis.

8voto

Josh Points 1919

Cela ressemble à un problème de permissions - est-il possible que vous ayez eu deux fenêtres ouvertes, exécutées avec des droits différents ? Vérifiez peut-être la propriété du dossier .git.

Vérifiez peut-être qu'il n'y a pas de verrou de fichier ouvert, utilisez peut-être lsof pour vérifier, ou l'équivalent pour votre OS.

8voto

schmunk Points 2637

C'est comme ça que ça marche pour moi.

  1. recherchez le fichier de verrouillage DAV d'Apache sur votre serveur (par exemple, /var/lock/apache2/DAVlock)
  2. le supprimer
  3. recréer avec des droits d'écriture pour le serveur web
  4. redémarrer le serveur web

Une alternative encore plus rapide :

  1. recherchez le fichier de verrouillage DAV d'Apache sur votre serveur (par exemple, /var/lock/apache2/DAVlock)
  2. Videz le fichier : cat /dev/null > /var/lock/apache2/DAVlock
  3. redémarrer le serveur web

5voto

yourmother Points 157

Dans mon cas, une branche a été déplacée dans un sous-répertoire et le répertoire a été appelé comme la branche. Git était confus par cela. Lorsque j'ai supprimé la branche locale (dans SourceTree, par un simple clic droit sur supprimer), tout a fonctionné comme d'habitude.

4voto

ralphtheninja Points 24346

Mise à jour :

Vous devrez peut-être modifier votre fichier ~/.netrc :

https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553


Réponse originale :

Pourquoi avez-vous désactivé le ssl ? Je pense que cela peut avoir un rapport avec le fait que vous ne pouvez pas pousser via https. Je le réactiverais et essaierais de pousser à nouveau :

git config –global http.sslVerify true

4voto

Versatile Points 396

Dans mon cas, après avoir reçu ce message, j'ai fait la démarche suivante caisse et a reçu ce message :

Your branch is based on 'origin/myBranch', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

Après avoir exécuté cette commande, j'étais de retour à la normale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X