Essayer de tirer avec erreur: impossible d’ouvrir .git / FETCH_HEAD: autorisation refusée

Aidez-moi s’il vous plaît, j’essaye de l’exécuter dans mon terminal:

asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull error: cannot open .git/FETCH_HEAD: Permission denied 

Alors j’essaie 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.

Il semble que le premier ne fonctionne pas parce que votre utilisateur ne dispose pas des permissions pour modifier ce répertoire, et le second parce que votre utilisateur root ne dispose pas des clés SSH adéquates pour accéder à ce repository 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 de chown le répertoire en cours pour que votre utilisateur ait un access complet.

Vérifiez si vous avez suffisamment d’permissions sur le .git/ . Vous devriez avoir des permissions en écriture. Vous pouvez les définir avec la commande suivante.

Accédez à votre dossier de projet:

 chown -R youruser:yourgroup .git/ 

Ceci est un problème d’autorisation UNIX. N’utilisez pas sudo pour cloner le référentiel. Vous n’avez pas les mêmes clés ssh que root et vous ne devriez pas travailler en tant que root. Essayez ls -la pour trouver les permissions sur les fichiers et utilisez chmod (ou sudo chown) pour les corriger. J’espère que cela pourra aider.

Si vous voulez donner la permission au groupe,

 sudo chmod g+w .git -R 

a fonctionné le mieux pour moi.

La réponse à ce problème est de vous assurer que .git / FETCH_HEAD dispose des privilèges d’écriture et que vous serez tous définis.

J’ai eu ce problème sous Windows et il a été résolu en donnant des permissions en écriture.

Dans unix, on peut lancer chmod a+rw .git/FETCH_HEAD partir du référentiel du projet, après quoi il devrait fonctionner.

Dans mon cas, ça marche bien après:

 rm -f .git/FETCH_HEAD 

Dans mon cas, je n’avais qu’un access en lecture au fichier .git / FETCH_HEAD. Je devais faire “sudo chmod g + w .git / FETCH_HEAD” pour pouvoir faire une requête de tirage.

J’avais le premier numéro (permission FETCH_HEAD refusée) sous Windows.

Je l’ai corrigé en lançant Git Bash en tant qu’administrateur (clic droit, exécuter en tant qu’administrateur).

Si vous ne vous êtes pas ajouté au groupe propriétaire de .git/ , alors vous devriez le faire.

 sudo usermod -a -G $(stat -c '%G' .git) $USER sudo chmod g+u .git -R sudo chmod g+u .gitignore su - $USER 

Qu’est-ce que cela fait:

  1. découvre quel groupe possède .git/ et ajoute votre utilisateur à ce groupe.
  2. s’assure que les membres du groupe ont les mêmes permissions que le propriétaire pour .git/ .
  3. répète cela pour .gitignore , dont vous aurez probablement besoin
  4. vous déconnecte et vous reconnecte pour actualiser les permissions de fichiers d’appartenance à un groupe

Si vous venez de faire quelque chose comme ceci (vous êtes ajouté au groupe qui possède .git/ ), vous devez vous déconnecter et vous .git/FETCH_HEAD avant de pouvoir écrire dans .git/FETCH_HEAD lors de votre git pull .

En exécutant Windows 7, lorsque j’avais ce problème, c’était parce que j’avais caché le dossier .git. Les permissions étaient correctes, c’était juste caché. Afficher le dossier a résolu le problème.

Essayez comme ça,

Étape 1: vérifiez d’abord qui vous êtes? il renverra le nom d’utilisateur actuel, par exemple ubuntu

 $ whoami 

Étape 2: définissez ensuite la permission pour votre utilisateur actuel, dans ce cas, ubuntu by

 sudo chown -R ubuntu .git/ 

Regardez le propriétaire et le groupe du répertoire .git avec (rendez-vous 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 avec sudo usermod -a -G yourusername groupsofonwner , puis sudo usermod -a -G yourusername groupsofonwner => login et tout ce qui fonctionne.

Donc en été

  1. aller au répertoire parent de git

     $cd your path 
  2. trouver le propriétaire du groupe de la .git .git

     $ll .git 
  3. ajoutez votre utilisateur à ce groupe

     $usermod -a -G yourusername ownergroupofgit 
  4. La déconnexion et la connexion au système pour cette modification prennent effet.

  5. Profitez-en 😉

Vous avez ce problème lorsque le dossier .git est masqué et que tous les fichiers qu’il contient sont également masqués. Ne faites que masquer le dossier .git sans mettre à jour les fichiers récursifs et cela fonctionnera.

Cela a fonctionné pour moi:

  1. Faites un clic droit sur le dossier .git
  2. cliquez pour obtenir des informations
  3. définir la permission pour votre utilisateur
  4. Cliquez sur l’icône Cog et cliquez sur Appliquer aux éléments joints

Plus aucune permission refusée des erreurs dans git. 🎉

Les raisons de cette erreur peuvent être multiples mais dans mon cas, j’ai mis à jour la twig avec root, puis quand j’ai essayé de la mettre à jour avec un utilisateur normal, cela me donne une erreur.

essayez les deux solutions il faut travailler pour vous

 1- sudo chmod g+w .git -R 

si cela ne fonctionne pas, essayez la solution suivante, espérez que cela résoudra votre problème

 2 - rm -f .git/FETCH_HEAD 

Je l’ai eu parce que j’avais plus d’un compte d’utilisateur sur ma boîte. J’étais connecté en tant qu’utilisateur A et je me trouvais dans un répertoire pour l’utilisateur B. L’utilisateur A n’avait pas la permission de l’utilisateur. 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 avait du sens.

J’ai eu ce message lors de l’utilisation des extensions git pour windows. Mon correctif était de simplement fermer les extensions de git puis ouvrir à nouveau en tant qu’administrateur