Aidez-moi s'il vous plaît, j'essaye d'exécuter ceci dans mon terminal:
asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Ensuite j'essaye celui-ci
asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Aidez-moi, je ne comprends pas ce problème.
sudo
n'aide probablement pas du tout ici car il a besoin d'accéder à vos clés ssh (pas à celles de root).Réponses:
Il semble que le premier ne fonctionne pas parce que votre utilisateur n'a pas les autorisations pour modifier ce répertoire, et le second parce que votre utilisateur root n'a pas les bonnes clés SSH pour accéder à ce référentiel git.
Selon ce que vous essayez de faire, il peut être préférable de cloner le référentiel dans un répertoire différent, ou peut
chown
- être le répertoire actuel pour avoir un accès complet à votre utilisateurla source
www-data
utilisateur l'autorisation de mettre à jour le.git
répertoire. J'appelle le script shell en utilisant php sur http dans le navigateur. Détails icisudo su
et que vous agissez en tant que root dans un repo. Un simplesudo chown -R <username> .
dans ce répertoire fonctionne magique!Vérifiez si vous disposez des autorisations suffisantes sur le
.git/
répertoire. Vous devez avoir des autorisations d'écriture. Vous pouvez les définir avec la commande suivante.Accédez à votre dossier de projet:
la source
chown: youruser: Invalid argument
chown -R youruser .git/
chown
.git/
et son dossier parent pour que cela fonctionnechown
ne fonctionne pas, exécutez également cette commandesudo chmod 0777 -R .git/
Si vous souhaitez donner l'autorisation au groupe,
a fonctionné le mieux pour moi.
Pour MacOS
la source
Il s'agit d'un problème d'autorisation UNIX. Ne pas utiliser
sudo
pour cloner le référentiel. Vous n'avez pas les mêmes clés ssh que root et vous ne devriez de toute façon pas travailler en tant que root. Essayezls -la
de trouver les autorisations sur les fichiers et utilisezchmod
(ousudo chown
) pour les corriger. J'espère que cela pourra aider.la source
sudo clone
pour accepter le nouveau contrat de licence de XCode. La réponse est d'accepter l'accord, puis de cloner sans sudo.Dans mon cas, fonctionne bien après:
la source
La réponse à ce problème vous assure que .git / FETCH_HEAD a des privilèges d'écriture et vous serez prêt.
J'ai eu ce problème sur Windows et il a été résolu en accordant des autorisations d'écriture.
Sous Unix, on peut s'exécuter à
chmod a+rw .git/FETCH_HEAD
partir du référentiel de projet, après quoi il devrait fonctionner.la source
.git/FETCH_HEAD
seul si le problème d'autorisation est activé.git
.Essayez comme ça,
Étape 1: Vérifiez d'abord qui vous êtes? il renverra le nom d'utilisateur actuel, par exemple ubuntu
Étape 2: définissez ensuite l'autorisation pour votre utilisateur actuel, dans ce cas, ubuntu en
la source
Dans mon cas, je n'avais qu'un accès en lecture au fichier .git / FETCH_HEAD. J'ai dû faire "sudo chmod g + w .git / FETCH_HEAD" afin de pouvoir faire une pull request.
la source
.git/FETCH_HEAD
seul si le problème d'autorisation est activé.git
.sudo chmod g+w .git/FETCH_HEAD
sudo chmod g+w .git/FETCH_HEAD
, solution parfaite.J'avais le premier problème (autorisation FETCH_HEAD refusée) sous Windows.
Je l'ai corrigé en exécutant Git Bash en tant qu'administrateur (clic droit, exécuter en tant qu'administrateur).
la source
Si vous ne vous êtes pas ajouté au groupe propriétaire
.git/
, vous devriez.Ce que cela fait:
.git/
et ajoute votre utilisateur à ce groupe..git/
..gitignore
lequel vous aurez probablement besoinSi vous avez récemment fait quelque chose comme ça (vous êtes ajouté au groupe qui en est propriétaire
.git/
), vous devez vous déconnecter et vous reconnecter avant de pouvoir écrire.git/FETCH_HEAD
pendant votregit pull
.la source
Définissez l'autorisation pour votre utilisateur actuel en exécutant la commande
$ sudo chown -R <username> .git/
la source
Accédez simplement à votre dossier racine et exécutez cette commande:
la source
Sous Windows 7, lorsque j'ai eu ce problème, c'était parce que j'avais caché le dossier .git. Les autorisations étaient bien, c'était juste caché. L'affichage du dossier l'a résolu.
la source
Cela résoudra toutes les autorisations dans le dossier
la source
Cela a fonctionné pour moi:
Aucune autre autorisation refusée des erreurs dans git. 🎉
la source
Regardez le propriétaire et le groupe du
.git
répertoire avec (allez d'abord dans le répertoire parent de .git)ll .git
, regardez le groupe et le propriétaire du répertoire, ajoutez votre utilisateur au groupe du propriétaire avecsudo usermod -a -G yourusername groupsofonwner
, puis déconnectez-vous => connexion et tout ce qui fonctionne .Donc en été
aller dans le répertoire parent de git
trouver le groupe propriétaire du
.git
direcotryajoutez votre utilisateur à ce groupe
La déconnexion et la connexion au système pour cette modification prennent effet.
Profitez-en ;)
la source
Vous avez ce problème lorsque le dossier .git est masqué et que tous les fichiers qu'il contient sont également masqués. Ne masquez que le dossier .git sans mise à jour récursive des fichiers et cela fonctionnera.
la source
Les raisons de cette erreur peuvent être multiples, mais dans mon cas, j'ai mis à jour la branche avec root, puis lorsque j'ai essayé de la mettre à jour avec un utilisateur normal, cela me donne une erreur.
essayez les deux solutions, on devrait travailler pour vous
si cela ne fonctionne pas, essayez la prochaine solution, j'espère que cela résoudra votre problème
la source
J'ai eu ce message lors de l'utilisation des extensions git pour Windows. Ma solution était de simplement fermer les extensions git, puis de les rouvrir en tant qu'administrateur
la source
Dans mon cas,
cette commande fonctionne.
la source
Ce problème se produit lorsque vous ne donnez pas les autorisations suffisantes au dossier .git. Pour résoudre ce problème-
Entrez cette commande-
J'espère que ça aide..!!
la source
J'ai eu exactement la même erreur mais dans mon cas, le problème était le résultat de la reconstruction d'Apache après une mise à niveau vers la version PHP. Pour faire court, j'ai oublié d'installer le module Apache 'suexec'.
Cela n'avait rien à voir avec le groupe ou la propriété. Cela ne m'a pris que deux jours pour comprendre, quelqu'un m'a tiré dessus ...
la source
Dans mon cas, j'avais un système à double démarrage (Windows 10 et Linux) avec un dossier de projet sur un disque NTFS. Il s'est avéré que sur une autre mise à jour, Windows 10 permettait de lui-même un "démarrage rapide" dans ses paramètres. Après l'avoir décochée dans Windows - "l'erreur: ne peut pas ouvrir .git / FETCH_HEAD: autorisation refusée" sous Linux a disparu.
la source
Je l'ai obtenu car j'avais plus d'un compte utilisateur sur ma boîte. J'étais connecté en tant qu'utilisateur A et j'étais dans un répertoire pour l'utilisateur B. L'utilisateur A n'était pas autorisé à utiliser les informations de l'utilisateur B. Une fois que j'ai réalisé que je n'étais pas là où je pensais être dans le système de fichiers, cette erreur était logique.
la source
si vous rencontrez le même problème dans le serveur Windows, vous devez exécuter la ligne de commande avec suffisamment d'autorisations, telles que les autorisations d'administrateur.
la source
pour l'utilisateur MacOS (si High Sierra ou version supérieure) utilisez ceci:
la source
TL; DR: dans les systèmes à double démarrage, désactivez le démarrage rapide pour Windows
J'avais ce problème dans mon système Ubuntu / Windows à double démarrage. Je n'ai rien pu écrire dans aucune des partitions partagées avec Windows (partitions NTFS).
J'ai récemment réinstallé les deux et j'ai oublié de désactiver le "Démarrage rapide" dans Windows. Tout est revenu à la normale après avoir redémarré dans Windows et désactivé cette fonctionnalité et redémarré à nouveau.
la source
Dans mon cas, je travaille: Je viens d'écrire
sudo
avant la commande:la source