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.