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?
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.
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
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
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.
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 *