git: fatal: je ne gère pas le protocole 'http'


307

Je copie et colle une commande git clone à partir d'une page Web: https://fedorahosted.org/ibus-typing-booster/

J'ai compris ceci:

user@host> git clone ​​http://git.fedorahosted.org/git/ibus-typing-booster.git

Cloning into 'ibus-typing-booster'...
fatal: I don't handle protocol '​​http'

Vous pouvez également prendre les URL (correctes) en bas de la vue du référentiel ici .
poke

@poke l'URL est correcte. Je ne comprends pas ce que tu veux me dire.
guettli

Vous pouvez le copier / coller à partir de là. C'est l'URL générée par la visionneuse du référentiel, et non une URL insérée manuellement dans certains wiki, donc c'est probablement plus correct.
poke

15
Cela m'est arrivé en utilisant msys-git et en essayant de coller (avec ctrl-v et ctrl-shift-v), avant de réaliser qu'ils n'étaient pas des raccourcis clavier valides. Refaire la commande et coller avec un clic droit-> coller semblait fonctionner.
Casey Kuball

1
pour moi, éditer le début du protocole et retaper le même l'a corrigé. Peut-être que certains personnages utf invisibles ont foiré les choses.
Seenivasan

Réponses:


631

J'ai copié et collé toute la ligne git clone http://....

Le caractère entre git cloneet http://...ressemble à un espace, mais c'est un caractère Unicode spécial !

Réponse courte: après avoir supprimé ce personnage et pénétré dans un espace réel, cela a fonctionné!

Pour les personnes qui aiment les détails: je vois deux façons de révéler les caractères ascii par rapport aux caractères unicode spéciaux

Way1: Python

Voici la vraie ligne:

vi t.txt # copy+paste the line
python
open('t.txt').read()
git clone \xe2\x80\x8b\xe2\x80\x8bhttp://...

Way2: moins

vi t.txt # copy+paste the line
LESSCHARSET=ascii less vi.txt

Si cela ressemble git clone <E2><80><8B><E2><80><8B>http://, alors vous copiez + les caractères spéciaux unicode collés.


8
Belle trouvaille! La raison en est probablement cette icône là.
poke

5
J'ai passé 3 heures à chercher un problème avec SSH / clés / connexion / soumettre les clés à Gitlab juste parce que j'avais un message refusé par publickey. : / Ensuite, je suis passé à https et j'ai reçu le message "ne pas gérer", qui m'a fait basculer. Et tout ce problème était dû à l'espace Unicode. Un grand merci à vous @guettli et combo Google / SO qui m'ont conduit ici.
LAFK dit Reinstate Monica

3
Je vous remercie. Je vois deux façons d'obtenir des solutions: git pourrait supprimer ces caractères spéciaux ou le shell (j'utilise bash). J'ai perdu du temps, vous avez perdu du temps ... si vous résumez cela, je suppose que cela pourrait être des années de temps humain ... perdu. C'est triste.
guettli

5
même ici - copie du lien de github dans le shell GIT de Windows
ootwch

1
@CiroSantilli 烏坎 事件 2016 六四 事件 法轮功 merci! xselaffiche le contenu du presse-papiers et hdeffectue un vidage hexadécimal. Agréable.
guettli

56

Utilisez le retour arrière pour supprimer tout ce qui se trouve entre git cloneet urlpuis utilisez la barre d'espace pour ajouter un espace propre entre eux. Aussi simple que cela.


@KathiravanNatarajan Je suis content que ce soit utile.
Felipe Belluco

25

J'ai simplement ajouté 5 "ESPACES" entre cloneet url:

  git clone     ​https://<PATH>/<TO>/<GIT_REPO>.git

et il fonctionne!


@guettli Cela fonctionne juste lors de l'ajout de 5 espaces entre le clone et http (s)! lorsque je lis cette réponse, j'essaye d'ajouter de l'espace, car j'étais pressé et je ne pouvais pas utiliser cette solution. C'était accidentellement et je ne sais pas pourquoi ça marche!
J.Hpour

16

Résumé: tapez l'URL au lieu de copier-coller en ligne de commande. Ça a marché pour moi.


1
Résumé de la réponse ci-dessus: Le caractère entre clone et http: // ... ressemble à un espace, mais c'est un caractère Unicode spécial! Après avoir supprimé ce personnage vide et pénétré dans un espace réel, cela a fonctionné! Le truc avec t.txt est juste pour les gens qui sont intéressés par le "pourquoi" et pas seulement par les "travaux".
guettli

1
Cela a déjà été mentionné dans plusieurs autres réponses (y compris la réponse acceptée).
Pika le magicien des baleines

14

Cela est principalement dû à certains caractères Unicode invisibles qui peuvent apparaître si vous appuyez sur "Ctrl + V" ou "Ctrl + Maj + V" dans le terminal. Ne copiez pas et ne collez pas la commande entière. Au lieu de cela, tapez git clone, puis copiez et collez l' URL à l' aide du bouton droit + Coller.


13

Ma solution:

  1. Type: git clone.
  2. Copiez l'URL du référentiel et collez-la après git clone.
  3. Déplacez le curseur pour positionner entre git cloneet https://....
  4. Supprimer l'espace s'il y avait entre git cloneet https://...jusqu'à ce quegit clonehttps://...
  5. Ajoutez de nouveau l'espace et appuyez sur Enter.

étonnamment, cela fonctionne même si vous ne rajoutez pas l'espace
Styl

11

J'ai utilisé des guillemets doubles pour l'URL et cela a fonctionné. Donc quelque chose comme

git clone "​​http://git.fedorahosted.org/git/ibus-typing-booster.git"

fonctionne .. les guillemets simples ne vous aident pas. Ce doit être des guillemets doubles.


4

Vous pouvez également utiliser un éditeur de texte:

  • Collez l'URL dans l'éditeur de texte
  • Copiez l'URL qui vient d'être collée depuis l'éditeur de texte
  • Collez-le dans la ligne de commande

2
Je suppose qu'un simple coup sur le retour arrière aide aussi
guettli

4

Veuillez ne pas copier depuis le presse-papiers. Copiez simplement l'URL à partir de l'emplacement / barre d'adresse de votre navigateur.entrez la description de l'image ici


L'URL n'était pas dans ma barre d'adresse. C'était du texte brut dans un wiki.
guettli

non .. lorsque vous collez l'URL dans git bash.Supposez après git clone {votre URL repo} .it prend un caractère supplémentaire entre le clone et votre URL repo. que vous pouvez vérifier en supprimant ou en appuyant sur le retour arrière avant votre URL de
dépôt

3

Le même problème s'est produit avec moi lorsque je viens de copier l'URL dans le presse-papiers, puis de la coller dans le terminal. Réécrire toute la ligne sans l'option copier-coller a résolu mon problème.


Pourquoi écrivez-vous cette réponse? Pensez-vous que la réponse actuelle manque quelque chose?
guettli

1
Salut guettli, Êtes-vous sûr que la réécriture du caractère espace résoudra le problème mentionné dans tous les cas possibles? Est-il possible d'avoir quelque chose de redondant / incorrect non pas dans l'espace blanc mais aussi dans les symboles inclus dans le texte de l'URL?
Arsen

bien sûr, les caractères unicode spéciaux peuvent être n'importe où. J'ai ajouté une deuxième façon de "révéler les caractères ascii par rapport aux caractères unicode spéciaux" à ma réponse.
guettli

3

Dans Android Studio:

J'ai supprimé git clone et je ne retiens que l'URL et cela a fonctionné !!



1

connexion ci-dessous:

git clone https://github.com/zendframework/ZendSkeletonApplication.git

donne une erreur:

Cloning into 'ZendSkeletonApplication'...
fatal: I don't handle protocol 'https'

Modifié pour:

git clone https://github.com/zendframework/ZendSkeletonApplication

fonctionne parfaitement ou vous pouvez simplement git cloner l'url. J'utilise os windows 10 et gitbash.


Il a fait exactement la même erreur. La réponse acceptée a fonctionné pour moi. Il est donc résolu
Callat

1

si vous utilisez Windows, utilisez des marques vocales 'url' pour ouvrir et fermer votre URL, par exemple git clone 'your-url-here'


1

Veuillez vérifier l'URL que vous avez collée et cela prend des heures supplémentaires après le clonage.

Donc, soit vous avez collé le clone git complet, soit vous http://<URL>.gitsupprimez simplement une lettre supplémentaire avant l'URL du référentiel git


Que voulez-vous dire par «h supplémentaire»?
guettli

1

dans l'option de code Visual Studio git: clone, j'ai tout essayé, par exemple en mettant 5 backspace, en supprimant le caractère Unicode spécial! et mettre de l'espace rien ne fonctionne pour moi

la solution fonctionne pour moi

ouvrez simplement git bash et collez toute l'url du clone git et c'est fait,

il semble qu'il y ait un problème avec le code Visual Studio


1

Cela nous est juste arrivé sans aucun problème d'espace, et changer https:pour le http:corriger ...


Bien, que cela fonctionne pour vous. Mais je pense que le vrai problème était le caractère spécial des espaces que vous avez supprimé en appuyant sur le retour arrière. Je ne sais pas si c'est vraiment une réponse valable à cette question.
guettli

Je ne pense pas. Je l'ai tapé à zéro plusieurs fois et j'ai eu la même erreur.
beroe

et vous avez le message d'erreur "git: fatal: je ne gère pas le protocole 'http'"?
guettli

1
C'est drôle, mais j'ai aussi ce problème et je l'ai résolu avec cette solution et je suis sûr que je n'ai pas de caractères blancs spéciaux
Babak Habibi

1

Réponse associée à cette question.
Erreur - fatale: je ne gère pas le protocole 'git clone https'
J'essayais de cloner le projet git sur mon VScode nouvellement installé dans mon système Linux, j'ai été copié l'URL entière du bit bucket, ce qui était comme

git clone https: //abc@bitbucket.org/abcuser/myproject.git


Mais en fait, il exécute une commande comme

git clone git clone https: //abc@bitbucket.org/abcuser/myproject.git

dans le seau à mors.
Suivez donc simplement les étapes suivantes:
1. Entrez Ctr + p; cela ouvrira la boîte de commande. Entrez et ouvrez 'Clone'
2. Maintenant, ne collez ici que l'url de votre référentiel git. par exemple: https: //abc@bitbucket.org/abcuser/myproject.git
3. Après cette boîte de saisie, votre mot de passe git apparaîtra à l'écran. Saisissez votre mot de passe git ici.
4. Terminé.


0

On dirait bien que si vous copiez collez le lien du référentiel, vous vous retrouvez avec ce problème.

Ce que je l'ai remarqué

  1. Si vous utilisez le bouton de copie sur GitHub puis collez l'URL dans GitBash (Windows), il génère cette erreur
  2. Si vous sélectionnez le lien, puis collez-le, cela fonctionne, ou vous pouvez également taper l'URL qui fonctionne également.

Je pense donc que cela pourrait être un problème avec le bouton de copie GitHub


Je ne l'ai pas copié depuis github. Je pense que c'était le trac du système de gestion des problèmes.
guettli

0

Si vous utilisez Git Extensions GUI ou GitHub Desktop (signifie que si vous utilisez un logiciel d'interface utilisateur et non un outil de ligne de commande) pour cloner le référentiel, vous devez copier et coller uniquement l'URL, c'est-à-dire https: // ... Donc il n'est pas nécessaire d'avoir une git cloneURL avant car ce logiciel le fera lui-même.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.