git: fatal: я не работаю с протоколом 'http'


307

Я скопировал и вставил команду git clone с веб-страницы: https://fedorahosted.org/ibus-typing-booster/

Я получил это:

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'

Вы также можете взять (правильные) URL-адреса из нижней части представления хранилища здесь .
тыкай

@ poke URL-адрес правильный. Я не понимаю, что ты хочешь мне сказать.
Геттли

Вы можете скопировать / вставить его оттуда. Это URL, сгенерированный средством просмотра репозитория, а не вставленный вручную в какую-то вики, поэтому он, скорее всего, более правильный.
тыкай

15
Это случилось со мной с помощью msys-git и попыткой вставить (с помощью ctrl-v и ctrl-shift-v), прежде чем я понял, что это недопустимые сочетания клавиш. Восстановление команды и вставка с правой кнопкой мыши -> вставка, казалось, работало.
Кейси Кубалл

1
для меня редактирование запуска протокола и повторный ввод того же самого исправленного. Может быть некоторые невидимые персонажи в беспорядке.
Seenivasan

Ответы:


631

Я скопировал и вставил всю строку git clone http://....

Символ между git cloneи http://...выглядит как пробел, но это специальный символ Unicode !

Краткий ответ: после удаления этого персонажа и ввода реального пространства все заработало!

Для людей, которые любят детали: я вижу два способа раскрыть символы ascii и special-unicode

Way1: Python

Вот настоящая линия:

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

Way2: меньше

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

Если это выглядит так git clone <E2><80><8B><E2><80><8B>http://, вы копируете + вставляете специальные символы юникода.


8
Хорошая находка! Причиной тому, вероятно, является эта иконка.
тыкай

5
Я потратил 3 часа на поиск проблемы с SSH / keys / connection / submit-ключами в Gitlab только потому, что у меня было сообщение об отказе в публичном ключе. : / Затем я переключился на https и получил сообщение «не обрабатывать», которое подсказало мне. И вся эта проблема была благодаря космическому внешнему виду Unicode. Большое, большое спасибо вам @guettli и Google / SO, которые привели меня сюда.
LAFK говорит восстановить Монику

3
Спасибо. Я вижу два способа обойти это: git может удалить эти специальные символы или оболочку (я использую bash). Я потратил время, ты потратил время ... если ты суммируешь это, я думаю, это могут быть годы человеческого времени ... потрачены впустую. Грустно.
Геттли

5
то же самое здесь - копирование ссылки из github в оболочку Windows GIT
ootwch

1
@CiroSantilli 事件 事件 2016 六四 事件 法轮功 спасибо! xselвыводит содержимое буфера обмена и hdвыполняет шестнадцатеричный дамп. Ницца.
Геттли

56

Используйте backspace, чтобы удалить все, что есть между git cloneи, urlи затем используйте пробел, чтобы добавить чистое пространство между ними. Просто как тот.


@KathiravanNatarajan Я рад, что это было полезно.
Фелипе Беллуко

25

Я просто добавил 5 "ПРОБЕЛ" между cloneи url:

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

и это работает!


@guettli Работает только при добавлении 5 пробелов между клоном и http (s)! когда я читаю этот ответ, я пытаюсь добавить немного места, потому что я спешил и не мог использовать это решение. Это было случайно, и я не знаю, почему это работает!
J.Hpour

16

Сводка: введите URL-адрес вместо копирования, вставив его в командную строку. Это сработало для меня.


1
Резюме из ответа выше: символ между клоном и http: // ... выглядит как пробел, но это специальный символ Unicode! После удаления этого пустого персонажа и входа в реальное пространство все заработало! Материал с t.txt предназначен только для людей, которые заинтересованы в «почему», а не только в «работах».
Геттли

1
Это уже упоминалось в нескольких других ответах (включая принятый ответ).
Пика Волшебник китов

14

В основном это связано с некоторыми невидимыми символами Юникода, которые могут появиться, если вы нажмете «Ctrl + V» или «Ctrl + Shift + V» в терминале. Не копируйте и вставляйте всю команду. Вместо этого введите git clone, а затем скопируйте и вставьте URL, используя правую кнопку мыши + вставку .


13

Мое решение:

  1. Тип: git clone.
  2. Скопируйте URL-адрес хранилища и вставьте его после git clone.
  3. Переместите курсор в положение между git cloneи https://....
  4. Удалить пробел, если он был между git cloneи https://...доgit clonehttps://...
  5. Повторно добавьте пробел и нажмите Enter.

удивительно, что это работает, даже если вы не добавите пробел заново
Styl

11

Я использовал двойные кавычки для URL, и это сработало. Так что-то вроде

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

работает .. одинарные кавычки не помогают. Это должны быть двойные кавычки.


4

Вы также можете использовать текстовый редактор:

  • Вставьте URL в текстовом редакторе
  • Скопируйте только что вставленный URL из текстового редактора.
  • Вставьте его в командную строку

2
Полагаю, что простое попадание на backspace тоже помогает
guettli

4

Пожалуйста, не копируйте из буфера обмена. Просто скопируйте URL из местоположения / адресной строки вашего браузера.введите описание изображения здесь


URL не было в моей адресной строке. Это был простой текст в вики.
Геттли

нет .. при вставке URL в git bash.Suppose after git clone {URL вашего репо} .it принимает дополнительный символ между клоном и вашим URL репо. которую вы можете проверить, удалив или нажав клавишу Backspace перед URL репо
Naveen Gupta

3

Та же проблема произошла со мной, когда я просто скопировал URL-адрес в буфер обмена, а затем вставил его в терминал. Перезапись всей строки без опции копирования-прошлого решила мою проблему.


Почему ты пишешь этот ответ? Как вы думаете, в текущем ответе чего-то не хватает?
Геттли

1
Привет guettli, Вы уверены, что перезапись только пробела решит упомянутую проблему во всех возможных случаях? Возможно ли иметь что-то избыточное / неправильное не в пустом пространстве, а в символах, включенных в текст URL?
Арсен

Конечно, специальные символы Юникода могут быть где угодно. Я добавил второй способ «показать ascii против специальных символов Юникода» в своем ответе.
Геттли


2

Решение очень простое:

1- Скопируйте свой путь мерзавца. пример: http://github.com/yourname/my-git-project.git

2- Откройте блокнот и вставьте его. Затем скопируйте путь из блокнота.

3 - вставьте путь к командной строке

Это оно.


1

клонирование ниже:

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

выдает ошибку:

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

Модифицировал это так:

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

работает отлично, или вы можете просто git clone URL. Я использую ОС Windows 10 и Gitbash.


Он сделал точно такую ​​же ошибку. Принятый ответ сработал для меня. Так что это решено
Callat

1

если вы используете Windows, используйте речевые метки 'url', чтобы открыть и закрыть ваш URL, например, git clone 'your-url-here'


1

Пожалуйста, проверьте URL-адрес, который вы вставили, и это займет дополнительное время после клонирования.

Так что либо вставьте полный клон git, http://<URL>.gitлибо просто удалите дополнительное письмо перед URL-адресом хранилища git.


Что вы имеете в виду под "дополнительным часом"?
Геттли

1

в Visual Studio опция кода git: клон, я попробовал все, например, поставив 5 backspace, удалив специальный символ Unicode! и расставлять места для меня ничего не работает

решение работает для меня

просто откройте git bash и вставьте весь URL-адрес git clone и все готово,

кажется, есть некоторая проблема с визуальным кодом студии


1

Это просто случилось с нами без каких-либо проблем с пробелами, и изменилось, https:чтобы http:исправить это ...


Здорово, что это работает для тебя. Но я думаю, что реальная проблема заключалась в особом пробеле, который вы убрали, нажав клавишу Backspace. Я не уверен, действительно ли это правильный ответ на этот вопрос.
Геттли

Я так не думаю. Я набрал его с нуля несколько раз и получил ту же ошибку.
Beroe

и вы получили сообщение об ошибке "git: fatal: я не обрабатываю протокол 'http'"?
Геттли

1
Забавно, но у меня тоже есть эта проблема, и я исправил ее с помощью этого решения, и я почти уверен, что у меня нет специальных пробельных символов
Бабак Хабиби

1

Связанный ответ с этим вопросом.
Ошибка - фатальная: я не работаю с протоколом 'git clone https'.
Я пытался клонировать git-проект в мой недавно установленный VScode в моей системе Linux, я скопировал весь URL из битовой корзины, что было похоже на

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


Но на самом деле это бегущая команда вроде

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

в ведре бит
Так что просто выполните следующие шаги:
1. Введите Ctr + p; это откроет окно команд. Войдите и откройте «Клон»
2. Теперь вставьте сюда только URL вашего репозитория git. например: https: //abc@bitbucket.org/abcuser/myproject.git
3. После этого поле для ввода вашего пароля git появится на экране. Введите свой пароль git здесь.
4. Готово.


0

Похоже, если вы скопируете и вставите ссылку на репозиторий, у вас возникнет эта проблема.

Что я это заметил

  1. Если вы используете кнопку копирования на GitHub, а затем вставляете URL-адрес в GitBash (Windows), он выдаст эту ошибку
  2. Если вы выберете ссылку, а затем вставите ее, она будет работать, или вы также можете просто ввести URL, который также работает.

Поэтому я думаю, что это может быть проблема с кнопкой копирования GitHub


Я не скопировал его с github. Я думаю, что это была система управления проблемами.
Геттли

0

Если вы используете Git Extensions GUI или GitHub Desktop (средства , если вы используете программное обеспечение пользовательского интерфейса , а не инструмент командной строки) , чтобы клонировать репозиторий , то вы должны скопировать и вставить только URL , т.е. https: // ... Так что git cloneперед URL-адресом указывать не нужно, так как это программное обеспечение будет делать само.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.