web-dev-qa-db-fra.com

Erreur ne peut pas stat sur git pull

J'ai essayé d'effectuer une extraction Git à partir d'une branche distante avec la commande suivante: 

$ git pull Origin branch_name
username@private_repository's password:
From ssh://private_repository/path/project
 * tag               branch_name       -> FETCH_HEAD
error: cannot stat 'path/name/of/file': Permission denied
error: cannot stat 'path/name/of/file': Permission denied

Mais j'obtiens l'erreur suivante:

error: cannot stat 'path/name/of/file': Permission denied 
error: cannot stat 'path/name/of/file': Permission denied

Est-ce que quelqu'un sait ce que cela signifie et que puis-je faire à ce sujet?

Merci

20
Fil

L’explication est simple: vous avez un problème de sécurité avec vos autorisations sur vos fichiers et vos dépôts git.

Si les autorisations de répertoire sont 755 (rwxr-xr-x), y compris tous les répertoires parents, tout le monde peut répertorier le contenu du répertoire. 

Mais vous ne pouvez pas, cela signifie donc généralement que le chemin d'accès complet au répertoire ne dispose pas d'autorisations 755. Cela signifie également que tous les répertoires parents doivent avoir l’autorisation + x.

4
Tal Avissar

Pour ceux qui travaillent avec Visual Studio, la fermeture de la solution peut résoudre cette erreur. Les outils git de l'EDI peuvent toujours conserver le (s) fichier (s) en question.

55
Tom Bowers

J'ai commencé à utiliser Atom et j'ai trouvé que c'était le problème. L'arborescence du fichier Atom devait être actualisée et le problème de git résolu.

19
Bruce Lerner

J'ai eu ce problème à plusieurs reprises avec Atom, fermer Atom le résolvait pour moi à chaque fois. Fermez toutes les applications utilisant des fichiers susceptibles d’être affectés par le pull.

12
David Villamizar

J'ai eu une solution différente à cette erreur. J'utilise atom.io comme outil de développement. Je voulais supprimer mon dernier travail d'essai (via git clean -df suivi de git checkout -- .). Lorsque je l'ai fait, certains répertoires vides résiduels étaient affichés dans l'arborescence de répertoires d'Atom. 

Ces répertoires vides généraient error: cannot stat 'path/name/of/directory': Permission denied lorsque j'ai essayé d'extraire une branche alternative dans git. Bien frustrant.

Le correctif consistait simplement à cliquer sur les répertoires d’Atom dans l’arborescence, où ils disparaissaient immédiatement. Une fois qu'ils étaient partis, il n'y avait plus d'erreur dans git. 

7
zipzit

Je suis avec le même problème, et la façon dont je le découvre était restart mon éditeur de code fermant tous les fichiers liés au projet (Atom) et mon interface graphique git (SourceTree). Après cela, vous pouvez changer de branche.

4
joelmbx

Dans mon cas, c'est l'explorateur Windows qui a bloqué les fichiers. Je l'ai redémarré avec le gestionnaire de tâches (clic droit, redémarrage) et le problème avait disparu.

3
Fernando

De plus, la CLI angulaire peut bloquer vos fichiers. Donc, assurez-vous d’arrêter de servir.

2
malthoff

ce qui a fonctionné pour moi est de faire fonctionner sourcetree et visual studio en mode administrateur

faites un clic droit sur l'icône (sourcet tree ou visual studio) et vous devriez voir une option 'Run as administrator'

 enter image description here

Vous pouvez également aller aux propriétés d'une application particulière et dans l'onglet Raccourci, sélectionnez Avancé et cochez l'option 'Exécuter en tant qu'administrateur'.

 enter image description here

2
d689p

Oui, je viens juste d'arriver et j'ai une solution facile pour les utilisateurs de Visual Studio. 

Si vous effectuez l'extraction d'une branche, mais que vous n'avez pas défini Visual Studio sur le focus, les fichiers seront verrouillés temporairement.

Une fois que vous avez cliqué sur VS et que vous lui avez permis de recharger les fichiers du projet, vous devriez pouvoir extraire à nouveau ... erreur utilisateur ici

2
JasonWilczak

Votre environnement git n'est pas configuré correctement. 

Les dépôts doivent être la propriété de l'utilisateur git. Donc, l'utilisateur git devrait accepter votre clé publique.

Vous ne savez pas quel back-end vous utilisez ici, donc la méthode pour ajouter votre clé variera. 

0
Jason Lee Eaton