web-dev-qa-db-fra.com

Android Studio - Échec du push: fatal: impossible de lire à partir du référentiel distant

J'ai un projet git sur Android Studio et une télécommande sur BitBucket et je l'ai modifié pour utiliser SSH au lieu de HTTPS. Je peux tout faire fonctionner avec SourceTree d'Atlassian, mais dans Android Studio, chaque fois que j'essaie de pousser le projet, il est indiqué 

Échec du push: fatal: impossible de lire à partir du référentiel distant.

Est-ce que quelqu'un a une idée de ce qui pourrait se passer? 

51
mFeinstein

C'est probablement un problème d'Intellij. Vos clés sont gérées de manière native par SSH et Intellij a son propre programme SSH.

Allez dans les paramètres, recherchez git-> ssh exécutable puis choisissez native

Comme vu ici: git avec IntelliJ IDEA: Impossible de lire à partir du référentiel distant

68
Nicolas Zozol

Il existe deux méthodes de vérification SSH Git dans Android Studio ou IntelliJ, en passant par: les paramètres - Contrôle de version - Git - SSH remplaçable - "Intégré" ou "Natif"

  1. Built-in: signifie utiliser la paire de clés ssh intégrée dans Git pour l'authentification . Vous pouvez la générer via 
    ssh-keygen -t rsa
    Le chemin enregistré par défaut est "~/.ssh/id_rsa" et "~/.ssh/id_rsa.pub" . Vous devez ajouter la clé publique à votre compte BitBucket. le chemin comme: gérer le compte - clés SSH - ajouter des clés
  2. Natif: signifie utiliser la paire ssh générée par le service d'hébergement du référentiel natif, tel que BitBucket ou GitHub, qui est souvent ajoutée automatiquement dans le compte de service. Par exemple dans GitHub. Il a généré une paire de clés SSH, "~/.ssh/github_rsa.pub" et "~/.ssh/github_rsa" et la clé publique a été ajoutée automatiquement dans mon compte via l'interface graphique de GitHub. Donc changer l'exécutable SSH en "Native" pourrait être un moyen simple.

Quoi qu'il en soit, vous pouvez utiliser les deux méthodes après avoir ajouté la clé publique correcte dans votre compte dans le service d'hébergement de référentiel.

17
Joe Wang

Allez dans Paramètres> Contrôle de version> Git. Assurez-vous que l'exécutable SSH est défini sur «Natif».

S'il est déjà défini, revenez sur «Intégré», appliquez-le, puis à nouveau sur «Natif».

 enter image description here

17
Stas

Malgré le fait que mon exécutable SSH était défini sur Native, je rencontrais cette erreur car j'ai défini le mot de passe pour le fichier de clé SSH.

Je n'ai pas trouvé le moyen de spécifier un mot de passe dans Android studio, mais il existe un autre solution, vous pouvez supprimer le mot de passe, qui peut être effectué avec $ ssh-keygen -p. Ensuite, confirmez simplement l'emplacement du fichier, entrez votre ancien mot de passe et laissez le nouveau mot de passe vide.

Tiré de Comment puis-je supprimer la phrase secrète de la clé SSH sans avoir à créer une nouvelle clé?

4
Lemberg

Allez sur github.com, ouvrez votre référentiel et copiez USE URL HTTPS Accédez au répertoire de votre projet Android. Dans le dossier .git, recherchez le fichier de configuration.

DANS l’URL de modification du fichier de configuration que vous avez copiée à partir de github.com (utilisez https) avec l’URL précédente.

1
taimoorAshfaq

J'ai eu un problème similaire dans Android Studio 3.1

J'ai changé Préférences> Contrôle de version> Git> Exécutable SSH de Intégré à Natif comme suggéré ici mais cela n'a pas aidé.

Ensuite, j'ai mis à niveau Android Studio vers 3.2 et je suis revenu à Built-in . Cela a résolu le problème dans mon cas.

0

J'ai le même problème. Il s'avère que la façon dont vous exécutez Android Studio est importante. Si vous l'exécutez avec les privilèges normaux du terminal ou de sth, il ne peut pas lire les fichiers locaux nécessaires à la sauvegarde du référentiel. 

Solution pourrait simplement consister à redémarrer Android Studio avec plus de privilèges qu’il n’en possède actuellement.

0
mdzeko

J'ai rencontré ce problème et je l'ai finalement résolu. Et il y a deux points importants pour le réglage: Dans le studio Android: File-Settings-GitHub: ne pas choisir "Cloner les référentiels git avec ssh" Dans le studio Android: File-Settings-Git: Choisissez "Construit -in "pour" exécutable SSH "

et pour le SSH que je possède déjà dans le compte de GitHub, c’est celui que j’ai dans le studio Android, j’oublie comment trouver le SSH dans le studio Android, mais vous pouvez le trouver de l’autre

0
EXEEE

Je suis tombé dessus moi-même et j'ai trouvé que les réponses existantes étaient un peu incomplètes. 

tl; dr: Basculer le client SSH d’Android Studio/IntelliJ d’intégré en natif peut résoudre le problème pour vous (c’est ce qui m’a été fait pour moi).

Android Studio (en réalité un IDE IntelliJ spécialisé) est fourni avec son propre client SSH intégré, mais vous permet de passer en mode natif (selon la plate-forme/le système d'exploitation) si vous préférez. Vous pouvez modifier cela en ouvrant les options de votre Android Studio, en recherchant «git» et en choisissant «natif» dans la liste déroulante des exécutables SSH.

Dans mon cas, je ne pouvais pas passer à BitBucket via Android Studio, mais git Push fonctionnait parfaitement. Le passage en mode natif (OSX SSH, dans mon cas) a résolu le problème - je peux maintenant passer à BitBucket depuis Android Studio.

D'autres réponses ont abordé le sujet, mais il semble y avoir eu une certaine confusion entre les exécutables SSH et les clés qu'ils utilisent.

Par aide Android Studio sous SSH Executable:

  • Intégré: sélectionnez cette option pour utiliser l'implémentation fournie par IntelliJ IDEA.
  • Natif: sélectionnez cette option pour utiliser l'implémentation native.
0
Clay H