git: fatal: Nie obsługuję protokołu „http”


307

Skopiowałem i wkleiłem polecenie git clone ze strony internetowej: https://fedorahosted.org/ibus-typing-booster/

Mam to:

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'

Możesz również pobrać (poprawne) adresy URL z dolnej części widoku repozytorium tutaj .
poke

@poke adres URL jest poprawny. Nie rozumiem, co chcesz mi powiedzieć.
guettli

Możesz skopiować / wkleić go stamtąd. Jest to adres URL generowany przez przeglądarkę repozytorium, a nie ręcznie wstawiany w niektórych wiki, więc prawdopodobnie jest bardziej poprawny.
poke

15
Zdarzyło mi się to za pomocą msys-git i próby wklejenia (z ctrl-v i ctrl-shift-v), zanim zdałem sobie sprawę, że nie były to prawidłowe skróty klawiaturowe. Wydawało się, że ponowne wykonanie polecenia i wklejanie za pomocą kliknięcia prawym przyciskiem myszy-> wklej.
Casey Kuball,

1
dla mnie edytowanie początku protokołu i przepisywanie tego samego naprawiło go. Mogą być jakieś niewidzialne znaki utf zawiedli rzeczy.
Seenivasan

Odpowiedzi:


630

Skopiowałem i wkleiłem całą linię git clone http://....

Znak pomiędzy git clonei http://...wygląda jak spacja, ale jest specjalnym znakiem Unicode !

Krótka odpowiedź: po usunięciu tej postaci i wejściu na prawdziwą przestrzeń zadziałało!

Dla ludzi, którzy kochają szczegóły: Widzę dwa sposoby na ujawnienie postaci ascii i znaków specjalnych Unicode

Sposób 1: Python

Oto prawdziwa linia:

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

Way2: mniej

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

Jeśli tak git clone <E2><80><8B><E2><80><8B>http://, to skopiuj + wklejone znaki specjalne Unicode.


8
Niezłe znalezisko! Powodem tego jest prawdopodobnie ta ikona.
poke

5
Spędziłem 3 godziny, szukając problemu z SSH / klucze / połączenie / przesyłanie kluczy do Gitlab tylko dlatego, że dostałem wiadomość odmową publickey. : / Następnie przełączyłem się na https i dostałem komunikat „nie obsługuj”, który mnie podpowiedział. A wszystkie te kłopoty wynikały z kosmicznego wyglądu Unicode. Bardzo, bardzo dziękuję wam @guettli i combo Google / SO, które mnie tu zaprowadziły.
LAFK mówi Przywróć Monikę

3
Dziękuję Ci. Widzę dwa sposoby obejścia tego problemu: git może usunąć te znaki specjalne lub powłokę (używam bash). Zmarnowałem czas, a ty zmarnowałeś czas ... jeśli to podsumujesz, myślę, że to mogą być lata ludzkiego czasu ... zmarnowane. To smutne.
guettli

5
to samo tutaj - kopiowanie linku z github do powłoki GIT dla systemu Windows
ootwch

1
@CiroSantilli 烏坎 事件 2016 六四 事件 法轮功 dziękuję! xselwyświetla zawartość schowka i hdwykonuje zrzut heksowy. Miły.
guettli

56

Użyj backspace, aby usunąć wszystko, co jest pomiędzy, git clonea urlnastępnie użyj spacji, aby dodać czyste odstępy między nimi. Proste.


@KathiravanNatarajan Cieszę się, że było to przydatne.
Felipe Belluco,

25

Po prostu dodałem 5 „SPACJI” pomiędzy clonei url:

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

i to działa!


@guettli Działa tylko przy dodawaniu 5 spacji między klonem a http (s)! kiedy czytam tę odpowiedź , staram się dodać trochę miejsca, ponieważ spieszyłem się i nie mogłem skorzystać z tego rozwiązania. To był przypadek i nie wiem, dlaczego to działa!
J.Hpour

16

Podsumowanie: wpisz adres URL zamiast wklejania go w wierszu polecenia. To zadziałało dla mnie.


1
Podsumowanie z powyższej odpowiedzi: Znak między klonem a http: // ... wygląda jak spacja, ale jest to specjalny znak Unicode! Po usunięciu tej pustej postaci i wejściu na prawdziwą przestrzeń działało! Rzeczy z t.txt są tylko dla ludzi, którzy są zainteresowani „dlaczego”, a nie tylko „działa”.
guettli

1
Zostało to już wspomniane w kilku innych odpowiedziach (w tym w odpowiedzi zaakceptowanej).
Pika the Wizard of the Whales

14

Głównie wynika to z niektórych niewidocznych znaków Unicode, które mogą pojawić się po naciśnięciu „Ctrl + V” lub „Ctrl + Shift + V” w terminalu. Nie kopiuj i wklejaj całego polecenia. Zamiast tego wpisz git clone, a następnie skopiuj i wklej adres URL, klikając prawym przyciskiem myszy + wklej.


13

Moje rozwiązanie:

  1. Typ: git clone.
  2. Skopiuj adres URL repozytorium i wklej go po git clone.
  3. Przesuń kursor do pozycji pomiędzy git clonei https://....
  4. Usuń spację, jeśli miała pomiędzy git clonei https://...do końcagit clonehttps://...
  5. Ponownie dodaj spację i naciśnij Enter.

zaskakująco działa, nawet jeśli nie dodasz ponownie miejsca
Styl

11

Użyłem podwójnego cudzysłowu dla adresu URL i zadziałało. Coś w stylu

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

działa .. pojedyncze cytaty nie pomagają. To muszą być podwójne cudzysłowy.


4

Możesz także użyć edytora tekstu:

  • Wklej adres URL w edytorze tekstu
  • Skopiuj adres URL, który został właśnie wklejony z edytora tekstu
  • Wklej go w wierszu polecenia

2
Wydaje

4

Nie kopiuj ze schowka. Wystarczy skopiować adres URL z paska lokalizacji / adresu przeglądarki.wprowadź opis zdjęcia tutaj


Adres URL nie znajdował się w pasku adresu. To był zwykły tekst na wiki.
guettli

nie .. po wklejeniu adresu URL w git bash. Załóżmy, że po git clone {twój URL repo}. przyjmuje dodatkowy znak między klonem a twoim URL repo. które możesz sprawdzić, usuwając lub naciskając klawisz Backspace przed adresem URL repozytorium
Naveen Gupta

3

Ten sam problem wystąpił ze mną, kiedy właśnie skopiowałem adres URL do schowka, a następnie wkleiłem go do terminala. Przepisanie całej linii bez opcji kopiowania przeszłości rozwiązało mój problem.


Dlaczego piszesz tę odpowiedź? Czy uważasz, że w obecnej odpowiedzi czegoś brakuje?
guettli,

1
Cześć guettli, czy jesteś pewien, że przepisanie tylko znaku spacji rozwiąże wspomniany problem we wszystkich możliwych przypadkach? Czy jest możliwe, aby coś było zbędne / niepoprawne nie w białej spacji, ale również w symbolach zawartych w tekście URL?
Arsen,

oczywiście specjalne znaki Unicode mogą być wszędzie. Do mojej odpowiedzi dodałem drugi sposób „ujawnienia znaków ascii vs specjalnych znaków Unicode”.
guettli



1

klonowanie poniżej:

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

daje błąd:

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

Zmodyfikowałem to do:

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

działa idealnie lub możesz po prostu sklonować adres URL. Korzystam z systemu operacyjnego Windows 10 i gitbash.


Zrobił dokładnie ten sam błąd. Przyjęta odpowiedź działała dla mnie. Więc to jest rozwiązane
Callat

1

jeśli korzystasz z systemu Windows, użyj znaków mowy „url”, aby otworzyć i zamknąć swój adres URL, np. git clone „your-url-here”


1

Sprawdź wklejony adres URL, a klonowanie zajmuje więcej godzin.

Więc albo wklej pełny klon git, http://<URL>.gitalbo po prostu usuń dodatkową literę przed adresem URL repozytorium git.


Co masz na myśli przez „dodatkowe h”?
guettli

1

w kodzie Visual Studio opcja git: klon Próbowałem wszystkiego, np. wstawiłem 5 backspace, usuwając specjalny znak Unicode! i umieszczenie miejsca nic dla mnie nie działa

rozwiązanie działa dla mnie

po prostu otwórz git bash i wklej cały adres URL git clone i gotowe,

wydaje się, że jest jakiś problem z kodem Visual Studio


1

Zdarzyło się to nam bez żadnych problemów z białymi spacjami i zmiana tego https:celu http:...


Fajnie, że to działa na twoje. Ale myślę, że prawdziwym problemem była specjalna biała postać, którą usunąłeś, naciskając klawisz Backspace. Nie jestem pewien, czy to naprawdę prawidłowa odpowiedź na to pytanie.
guettli

Nie wydaje mi się Pisałem kilka razy od zera i otrzymałem ten sam błąd.
beroe

i pojawia się komunikat o błędzie „git: fatal: nie obsługuję protokołu„ http ””?
guettli

1
To zabawne, ale mam też ten problem i naprawiłem to za pomocą tego rozwiązania i jestem pewien, że nie mam żadnych specjalnych znaków spacji
Babak Habibi

1

Powiązana odpowiedź na to pytanie.
Błąd - krytyczny: nie obsługuję protokołu „git clone https”
Próbowałem sklonować projekt git do mojego nowo zainstalowanego VScode w moim systemie Linux, skopiowałem cały adres URL z segmentu bitów, co było jak

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


Ale w rzeczywistości działa jak polecenie

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

w wiadrze bitów.
Więc po prostu wykonaj następujące czynności:
1. Wpisz Ctr + p; otworzy się okno poleceń. Wejdź i otwórz „Klon”
2. Teraz wklej tutaj tylko adres swojego repozytorium git. np .: https: //abc@bitbucket.org/abcuser/myproject.git
3. Po tym polu do wpisania hasła do gita pojawi się na ekranie. Wpisz tutaj swoje hasło do git.
4. Gotowe.


0

Wygląda na to, że jeśli skopiujesz i wkleisz link do repozytorium, skończysz z tym problemem.

Co to zauważyłem

  1. Jeśli użyjesz przycisku kopiowania w GitHub, a następnie wkleisz adres URL w GitBash (Windows), zgłasza ten błąd
  2. Jeśli wybierzesz link, a następnie wkleisz, to zadziała lub możesz również wpisać adres URL, który również działa.

Myślę więc, że może to być problem z przyciskiem kopiowania GitHub


Nie skopiowałem go z github. Myślę, że to był trac system zarządzania problemami.
guettli

0

Jeśli używasz Git Extensions GUI lub GitHub pulpit (czyli jeśli używasz żadnego oprogramowania UI, a nie narzędzie wiersza polecenia), aby sklonować repo potem trzeba skopiować i wkleić tylko URL czyli https: // ... So nie ma potrzeby posiadania git cloneprzed URL-em, ponieważ to oprogramowanie zrobi to samo.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.