web-dev-qa-db-fra.com

supprimer .git / index.lock ': autorisation refusée

Je suis complètement coincé quant à la raison pour laquelle mon git m'a complètement bloqué. J'ai un ordinateur portable que j'utilise au travail et à la maison. Pour les deux comptes, j'utilise largement git et les deux sont situés dans des chemins différents. Aujourd'hui, je suis entré au travail et je ne peux rien faire, tout ce que je vois c'est:

/Applications/MAMP/htdocs/my_site/.git/index.lock': Permission denied

Pour tout ce qui m'importe, la branche sur laquelle je suis peut être supprimée. J'ai essayé de supprimer la branche, de vérifier toute autre branche, de supprimer le fichier index.lock (comme suggéré par d'autres utilisateurs sur les sites). Je n'ai que la fenêtre du terminal ouverte, aucun autre programme possible utilisant git (pour autant que je sache et rien de visible dans la fenêtre d'activité). J'ai redémarré l'ordinateur directement dans mon compte professionnel et toujours pas de chance. Comment puis-je retirer ce verrou?

26
user1760561

Vérifiez quel utilisateur possède le verrou git:

ls -la /Applications/MAMP/htdocs/my_site/.git/index.lock

Ensuite, vous pouvez utiliser Sudo pour le supprimer.

17
Jure C.

J'ai eu exactement le même problème en voulant valider mes modifications dans git, et je l'ai résolu de cette façon:

  • Je devais changer le groupe de mes .git dossier et son contenu:

    Sudo chown -R <owner>:<group> .git

  • nécessaire pour modifier l'autorisation de ce dossier:

    Sudo chmod -R 775 .git

29
Mahshid Zeinaly

Après la mise à jour de xcode, vous devrez peut-être accepter la nouvelle licence.

git init

Accepter la licence Xcode/iOS nécessite des privilèges d'administrateur, veuillez réexécuter en tant que root via Sudo.

Quand tu fais ça

Sudo git init

vous obtiendrez un utilisateur root .git dir

drwxr-xr-x 10 racine XXXX 340 25 sept 12:40 .git

Si vous appelez d'autres commandes git qui créent des fichiers, ces fichiers sont également créés pour l'utilisateur root.

Modifiez les autorisations ou supprimez .git si vous n'en avez pas encore besoin.

=> N'appelez jamais git avec Sudo !!! Si on vous demande d'appeler juste git sur un répertoire vide

mkdir foo

cd foo

Sudo git init

6
Matthias M

J'ai rencontré ce problème en exécutant la commande suivante Sudo git fetch && git checkout<branch>

Notez que le deuxième Sudo était manquant. L'exécution de ce qui suit a résolu le problème: Sudo git fetch && Sudo git checkout<branch>

Vous ne devriez pas avoir à changer le propriétaire du répertoire .git lors de l'exécution de Sudo.

3
Jason Bruce

Je rencontrais le même problème en essayant de mettre à jour les sous-modules de mon dépôt:

$ git submodule update
fatal: Unable to create '.../.git/modules/deps/luajit/index.lock': 
   Permission denied
Unable to checkout '04dc64b558025e76a820f89a8e41840bf8269f32' in
   submodule path 'deps/luajit'

Il semble que le problème était que les sous-modules appartenaient à un utilisateur différent, j'ai donc rétabli la propriété:

cd .git/modules/
chown -R user.group *
2
Diego Pino