Je suis confronté à ce problème depuis quelques jours lorsque j'essaie de créer un statut ou un attrait git. Le référentiel est hébergé sur Bitbucket.
J'ai essayé plusieurs choses pour que cela fonctionne (il y a quelques articles liés à ceci sur stackoverflow, mais ils ne fonctionnaient pas).
Voici le problème:
utilisateur @ hôte:/repo/$ statut git fatal: ouverture du fichier index échouée: autorisation refusée fatal: statut git - échec de la porcelaine
Si je fais un "git pull":
utilisateur @ hôte:/repo/$ git pull remote: objets de comptage: 77, terminé . remote: objets compressés: 100% (30/30), terminé . remote: total 56 (delta 37), réutilisé 41 (delta 22) erreur: autorisation insuffisante pour ajouter un objet à la base de données du référentiel .git/objects fatal: échec de l'écriture de l'objet fatal: échec de la décompression d'objets
J'ai vérifié les autorisations locales et tout semble bien se passer. J'ai la permission de tous les fichiers.
Remarque:
Si j'utilise "Sudo", tout semble fonctionner normalement, mais je n'ai aucune information d'identification SSH pour root sur cet ordinateur de déploiement. Cela me fait penser que c'est un problème d'autorisations (comme l'explique l'erreur), cependant: ce que cela pourrait être, si je suis le propriétaire de tous les fichiers, y compris les fichiers contenus dans .git /
Merci d'avance!
J'ai eu la même erreur fatal: index file open failed: Permission denied
lors de l'exécution git status
et j'ai vérifié .git/index
par
$ ls -al .git/index
à ma grande surprise, c'est
---------- 1 Kjuly staff 768248 Sep 2 11:07 .git/index
Je ne sais pas pourquoi et comment cela a changé. Quoi qu’il en soit, après avoir changé sa permission en 644
par
$ chmod 644 .git/index
git status
fonctionne.
Assurez-vous que le répertoire .git et ses fichiers/sous-répertoires appartiennent à votre utilisateur et qu’ils peuvent les écrire. Cela semble que le référentiel a été cloné sous un autre compte utilisateur ou en tant qu'utilisateur root (par exemple, via Sudo
).
Peu importe où la télécommande du référentiel est hébergée, le statut de git n'accède qu'au référentiel local.
J'ai rencontré le même problème avec BitBucket aujourd'hui. Voici la solution de contournement qui a fonctionné pour moi:
git remote set-url Origin https://[email protected]/_my_/_repo_.git
git pull
git Push
git remote set-url Origin [email protected]:_my_/_repo_.git