1032 votes

Git - fatal : Impossible de créer '/path/mon_projet/.git/index.lock' : Le fichier existe

Je reçois toujours ce message d'erreur, lorsque j'essaie de déplacer l'arbre de mon projet sur le repo git.

J'ai vérifié les permissions de mon répertoire avec ce projet et elles sont réglées sur 777. Dans le terminal, dans le répertoire avec my_project J'ai réglé :

git init

et ensuite si j'essaie

git add .

ou

git commit -m "first upload"

alors j'obtiendrai l'erreur

fatal: Unable to create '/path/my_proj/.git/index.lock': File exists.

If no other git process is currently running, this probably means a git process crashed in this repository earlier. 
Make sure no other git process is running and remove the file manually to continue.

J'ai aussi essayé de créer un nouveau repo et de le commiter, mais malheureusement toujours le même message d'erreur.

Quelle est la cause du problème ?

1 votes

J'ai eu ce problème parce que je me suis connecté avec su dans un autre terminal, en revenant au premier, tout s'est bien passé.

0 votes

3 votes

J'ai eu le même problème, utilisez "sudo git add . ou git commit -m "first upload" " au lieu de " git add . ou git commit -m "first upload" ".

2172voto

Raphael R. Points 3033

Essayez

rm -f ./.git/index.lock

Dans votre répertoire de dépôt. Le message d'erreur est plutôt explicite quant à sa cause typique, donc si vous n'avez pas d'autres processus git en cours (ce qui est le cas normal), allez-y et supprimez ce fichier.

0 votes

Merci, ça m'a aidé. Maintenant, j'exécute git commit -a et ensuite j'ai vérifié git status il y avait un message # On branch master nothing to commit (working directory clean) . Mais je ne vois toujours pas de fichiers importés dans mon repo sur bitbucket. En combien de temps les fichiers seront-ils transférés de mon répertoire local vers le repo web ?

7 votes

Cela ne se fait pas automatiquement. Vous devez exécuter la commande git push pour pousser vos changements vers le serveur web. Les détails sur la façon dont cela fonctionne sont ici : gitready.com/beginner/2009/01/21/pushing-and-pulling.html

13 votes

J'ai exactement le même problème mais je ne peux pas le résoudre de cette façon car le fichier .git/index.lock ne semble pas exister : touch .get/index.lock renvoie à touch: .get/index.lock: No such file or directory

195voto

ssaltman Points 789

Sous Windows, faites-le dans l'invite de commande à partir du répertoire repo :

cd .git
del index.lock

MISE À JOUR : J'ai découvert que je n'ai pas besoin de faire cette procédure si j'attends un moment après avoir fermé les fichiers sur lesquels je travaille avant d'essayer de changer de branche. Je pense que ce problème est parfois dû au fait que git rattrape un système de fichiers lent. D'autres développeurs plus compétents en matière de git peuvent intervenir s'ils pensent que c'est correct.

3 votes

Bizarrement, j'obtiens l'erreur concernant le fichier mais ensuite, lorsque j'essaie de supprimer le fichier dans cmd.exe, il indique que le fichier n'a pas été trouvé :) Même résultat avec les chemins absolus et relatifs. Mais dans Git Bash, cela fonctionne (avec rm -f index.lock )

0 votes

Dans mon cas, j'ai exécuté "Fetch" après quelques redémarrages de Sourcetree et cela a fonctionné.

0 votes

Bien que cela ne soit pas un problème dans ce cas puisque nous avons affaire à un seul fichier de taille 0, il est préférable en général d'utiliser rmdir /s. del dans cmd ne supprime que les fichiers. Même dans ce cas, sans /s, il ne fera pas de récursivité et ne supprimera que les fichiers du répertoire de premier niveau. Donc, pour cmd, vous devriez utiliser rmdir /s pour supprimer récursivement tous les fichiers et dossiers.

38voto

Jeff Grimes Points 1494

Essayez de quitter Xcode - puisque c'est un client git, vous devez quitter Xcode pour éviter les problèmes avec git en ligne de commande.

4 votes

Joli ! Notez que Xcode ET les autres clients Git peuvent être coupables. Dans mon cas, il a fallu fermer gitX également.

0 votes

Après avoir dû supprimer mon fichier de verrouillage une dizaine de fois ce matin, je suis finalement tombé sur cette réponse. Je ne sais pas comment xcode s'est ouvert mais c'est sûr que ça a détruit mon flux de travail. Merci pour le conseil !

2voto

G unitzo Points 21

La résolution de ce problème est de copier les trois fichiers xcode/projet dans le répertoire et ensuite créer un nouveau répertoire (n'importe où ailleurs) et ensuite coller les trois fichiers/répertoires.

2voto

kaspartus Points 628

On peut aussi simplement tuer le processus git. Je reçois le même problème via l'application GUI pour git, quelque chose ne va pas et git fait un travail infini. Le fait de tuer le processus va geler l'application qui fonctionne avec git, il suffit de la redémarrer et tout sera ok.

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