git: fatal: Ich behandle nicht das Protokoll 'http'


307

Ich habe einen Git-Klon-Befehl von einer Webseite kopiert und eingefügt: https://fedorahosted.org/ibus-typing-booster/

Ich schaff das:

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'

Sie können auch die (richtige) URLs vom Boden des Endlagers Blick nehmen hier .
Poke

@poke die URL ist korrekt. Ich verstehe nicht, was du mir sagen willst.
Guettli

Sie können es von dort kopieren / einfügen. Es ist die vom Repository-Viewer generierte URL und keine manuell eingefügte URL in einem Wiki, daher ist sie wahrscheinlich korrekter.
stupsen

15
Dies geschah mir mit msys-git und dem Versuch einzufügen (mit Strg-V und Strg-Umschalt-V), bevor mir klar wurde, dass es sich nicht um gültige Tastaturkürzel handelte. Das Wiederholen des Befehls und das Einfügen mit Rechtsklick-> Einfügen schien zu funktionieren.
Casey Kuball

1
Für mich wurde der Start des Protokolls durch Bearbeiten und erneutes Eingeben des Protokolls behoben. Möglicherweise sind einige unsichtbare utf-Charaktere durcheinander.
Seenivasan

Antworten:


630

Ich habe die ganze Zeile kopiert und eingefügt git clone http://....

Das Zeichen zwischen git cloneund http://...sieht aus wie ein Leerzeichen, aber es ist ein spezielles Unicode-Zeichen !

Kurze Antwort: Nachdem Sie dieses Zeichen entfernt und einen realen Raum betreten hatten, funktionierte es!

Für Leute, die Details lieben: Ich sehe zwei Möglichkeiten, um ASCII gegen spezielle Unicode-Zeichen zu enthüllen

Weg1: Python

Hier ist die wirkliche Linie:

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

Weg2: weniger

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

Wenn es so aussieht git clone <E2><80><8B><E2><80><8B>http://, kopieren Sie + eingefügte Unicode-Sonderzeichen.


8
Schöner Fund! Der Grund dafür ist wahrscheinlich das Symbol dort.
stupsen

5
Ich habe 3 Stunden lang nach einem Problem mit SSH / keys / connection / dem Senden der Schlüssel an Gitlab gesucht, nur weil mir ein öffentlicher Schlüssel verweigert wurde. : / Dann wechselte ich zu https und bekam die Meldung "Nicht behandeln", die mich darauf hinwies. Und all diese Probleme waren dem Unicode-Space-Look-Alike zu verdanken. Vielen, vielen Dank an Sie @guettli und Google / SO Combo, die mich hierher geführt haben.
LAFK sagt Reinstate Monica

3
Vielen Dank. Ich sehe zwei Möglichkeiten, um das Problem zu umgehen: git könnte diese Sonderzeichen oder die Shell entfernen (ich verwende bash). Ich habe Zeit verschwendet, du hast Zeit verschwendet ... wenn du das zusammenfasst, könnte dies Jahre menschlicher Zeit sein ... verschwendet. Es ist traurig.
Guettli

5
Gleiches hier - Kopieren des Links von Github in die Windows GIT-Shell
ootwch

1
@CiroSantilli 事件 事件 2016 六四 事件 法轮功 danke! xselgibt den Inhalt der Zwischenablage aus und hdführt einen Hex-Dump durch. Nett.
Guettli

56

Verwenden Sie die Rücktaste, um alles zu löschen, was sich zwischen git cloneund befindet, urlund verwenden Sie dann die Leertaste, um einen sauberen Abstand zwischen ihnen hinzuzufügen. So einfach ist das.


@ KathiravanNatarajan Ich bin froh, dass es nützlich war.
Felipe Belluco

25

Ich habe einfach 5 "SPACE" zwischen cloneund hinzugefügt url:

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

und es funktioniert!


@guettli Es funktioniert nur, wenn 5 Leerzeichen zwischen Klon und http (s) hinzugefügt werden! Wenn ich diese Antwort lese , versuche ich, etwas Platz hinzuzufügen, da ich es eilig hatte und diese Lösung nicht verwenden konnte . Es war aus Versehen und ich weiß nicht, warum es funktioniert!
J.Hpour

16

Zusammenfassung: Geben Sie die URL ein, anstatt sie in die Befehlszeile einzufügen. Es hat bei mir funktioniert.


1
Zusammenfassung der obigen Antwort: Das Zeichen zwischen Klon und http: // ... sieht aus wie ein Leerzeichen, ist jedoch ein spezielles Unicode-Zeichen! Nachdem Sie dieses leere Zeichen entfernt und einen realen Raum betreten hatten, funktionierte es! Das Zeug mit t.txt ist nur für Leute, die sich für das "Warum" und nicht nur für "Werke" interessieren.
Guettli

1
Dies wurde bereits in mehreren anderen Antworten erwähnt (einschließlich der akzeptierten Antwort).
Pika der Zauberer der Wale

14

Meistens liegt es an einigen unsichtbaren Unicode-Zeichen, die auftreten können, wenn Sie im Terminal "Strg + V" oder "Strg + Umschalt + V" drücken. Kopieren Sie nicht den gesamten Befehl und fügen Sie ihn nicht ein. Stattdessen geben Sie git clone und dann kopieren und einfügen url mit Rechtsklick + Paste.


13

Meine Lösung:

  1. Typ : git clone.
  2. Kopieren Sie die Repository-URL und fügen Sie sie nach ein git clone.
  3. Bewegen Sie den Cursor auf die Position zwischen git cloneund https://....
  4. Löschen Sie das Leerzeichen, wenn es zwischen git cloneund https://...bis hatgit clonehttps://...
  5. Fügen Sie das Leerzeichen erneut hinzu und drücken Sie Enter.

überraschenderweise funktioniert es auch, wenn Sie den Speicherplatz nicht erneut hinzufügen
Styl

11

Ich habe doppelte Anführungszeichen für die URL verwendet und es hat funktioniert. Also so etwas wie

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

funktioniert .. einfache Anführungszeichen helfen nicht. Es müssen doppelte Anführungszeichen sein.


4

Sie können auch einen Texteditor verwenden:

  • Fügen Sie die URL in den Texteditor ein
  • Kopieren Sie die gerade eingefügte URL aus dem Texteditor
  • Fügen Sie es in die Befehlszeile ein

2
Ich denke, ein einfacher Treffer auf der
Rücktaste

4

Bitte nicht aus der Zwischenablage kopieren. Kopieren Sie einfach die URL aus der Standort- / Adressleiste Ihres Browsers.Geben Sie hier die Bildbeschreibung ein


Die URL war nicht in meiner Adressleiste. Es war einfacher Text in einem Wiki.
Guettli

nein .. wenn URL in git bash eingefügt wird. Angenommen, nach git clone {Ihre Repo-URL} .it wird zwischen dem Klon und Ihrer Repo-URL ein zusätzliches Zeichen gesetzt. was Sie überprüfen können, indem Sie die Rücktaste vor Ihrer Repo-URL löschen oder drücken
Naveen Gupta

3

Das gleiche Problem trat bei mir auf, als ich die URL gerade in die Zwischenablage kopiert und dann in das Terminal eingefügt habe. Das Umschreiben der gesamten Zeile ohne Copy-Past-Option hat mein Problem behoben.


Warum schreibst du diese Antwort? Denken Sie, dass der aktuellen Antwort etwas fehlt?
Guettli

1
Hallo guettli, sind Sie sicher, dass das Umschreiben nur des Leerzeichens das erwähnte Problem in allen möglichen Fällen löst? Ist es möglich, dass etwas Redundantes / Falsches nicht im Leerraum, sondern auch in den Symbolen im URL-Text enthalten ist?
Arsen

Natürlich können spezielle Unicode-Zeichen überall sein. Ich habe meiner Antwort einen zweiten Weg hinzugefügt, um "ASCII gegen spezielle Unicode-Zeichen zu enthüllen".
Guettli

3

In Android Studio:

Ich habe den Git-Klon entfernt und nur die URL beibehalten und es hat funktioniert !!



1

Klonen unten:

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

gibt Fehler:

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

Geändert zu:

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

funktioniert perfekt oder du kannst einfach die URL klonen. Ich benutze OS Windows 10 und Gitbash.


Es hat genau den gleichen Fehler gemacht. Die akzeptierte Antwort hat bei mir funktioniert. So ist es gelöst
Callat

1

Wenn Sie Windows verwenden, verwenden Sie 'url'-Sprachmarkierungen, um Ihre URL zu öffnen und zu schließen, z. B. Git-Klon' your-url-here '.


1

Bitte überprüfen Sie die URL, die Sie eingefügt haben, und es dauert zusätzliche Stunden nach dem Klonen.

Entweder haben Sie einen vollständigen Git-Klon eingefügt http://<URL>.gitoder Sie entfernen einfach einen zusätzlichen Buchstaben vor der URL des Git-Repositorys.


Was meinst du mit "zusätzliches h"?
Guettli

1

in Visual Studio Code Option Git: Klon Ich habe alles versucht, zB 5 Rücktaste setzen, das spezielle Unicode-Zeichen löschen! und Platz schaffen funktioniert bei mir nichts

Lösung funktioniert bei mir

Öffnen Sie einfach Git Bash und fügen Sie die gesamte URL des Git-Klons ein.

Es scheint, dass es ein Problem mit dem Visual Studio-Code gibt


1

Dies ist uns einfach ohne Leerzeichen passiert und wurde geändert, https:um http:es zu beheben ...


Schön, dass das bei dir funktioniert. Aber ich denke, das eigentliche Problem war das spezielle Leerzeichen, das Sie durch Drücken der Rücktaste entfernt haben. Ich bin mir nicht sicher, ob dies wirklich eine gültige Antwort auf diese Frage ist.
Guettli

Das glaube ich nicht. Ich habe es mehrmals von Grund auf neu getippt und den gleichen Fehler erhalten.
Beroe

und du hast die Fehlermeldung "git: fatal: Ich behandle das Protokoll 'http' nicht"?
Guettli

1
Es ist lustig, aber ich habe auch dieses Problem und ich habe es mit dieser Lösung behoben und ich bin mir ziemlich sicher, dass ich keine speziellen Leerzeichen habe
Babak Habibi

1

Verwandte Antwort mit dieser Frage.
Fehler - schwerwiegend: Ich
behandle das Protokoll 'git clone https' nicht. Ich habe versucht, das git-Projekt auf meinen neu installierten VScode in meinem Linux-System zu klonen. Ich habe die gesamte URL aus dem Bit-Bucket kopiert

Git-Klon https: //abc@bitbucket.org/abcuser/myproject.git


Aber eigentlich läuft es wie ein Befehl

Git-Klon Git-Klon https: //abc@bitbucket.org/abcuser/myproject.git

im Bit Eimer.
Führen Sie einfach die folgenden Schritte aus:
1. Geben Sie Strg + p ein. Dadurch wird das Befehlsfeld geöffnet. Geben Sie 'Clone'
2 ein und öffnen Sie es. Fügen Sie hier nur die URL Ihres Git-Reposiratoriums ein. Beispiel: https: //abc@bitbucket.org/abcuser/myproject.git
3. Danach wird das Feld zur Eingabe Ihres Git-Passworts auf dem Bildschirm angezeigt. Geben Sie hier Ihr Git-Passwort ein.
4. Fertig.


0

Wenn Sie den Repository-Link kopieren und einfügen, tritt dieses Problem auf.

Was mir dabei aufgefallen ist

  1. Wenn Sie die Schaltfläche "Kopieren" auf GitHub verwenden und dann die URL in GitBash (Windows) einfügen, wird dieser Fehler ausgegeben
  2. Wenn Sie den Link auswählen und dann einfügen, funktioniert er, oder Sie können auch einfach die URL eingeben, die ebenfalls funktioniert.

Ich denke, es könnte ein Problem mit der GitHub-Schaltfläche zum Kopieren sein


Ich habe es nicht von Github kopiert. Ich denke, es war das Issue-Management-System Trac.
Guettli

0

Wenn Sie die GUI von Git Extensions oder GitHub Desktop verwenden (dh wenn Sie eine UI-Software und kein Befehlszeilentool verwenden), um das Repo zu klonen, müssen Sie nur die URL kopieren und einfügen, dh https: // ... Also Es ist nicht erforderlich, git clonevor der URL zu stehen, da diese Software dies selbst erledigt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.