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'
guettli
источник
Вы также можете взять (правильные) 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://, вы копируете + вставляете специальные символы юникода.

guettli
источник
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

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

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

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

Rajan
источник
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 из текстового редактора.
  • Вставьте его в командную строку
Zovfreullia
источник
2
Полагаю, что простое попадание на backspace тоже помогает
guettli
4

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

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

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

Арсен
источник
Почему ты пишешь этот ответ? Как вы думаете, в текущем ответе чего-то не хватает?
Геттли
1
Привет guettli, Вы уверены, что перезапись только пробела решит упомянутую проблему во всех возможных случаях? Возможно ли иметь что-то избыточное / неправильное не в пустом пространстве, а в символах, включенных в текст URL?
Арсен
Конечно, специальные символы Юникода могут быть где угодно. Я добавил второй способ «показать ascii против специальных символов Юникода» в своем ответе.
Геттли
3

В Android Studio:

Я удалил git clone и сохранил только URL, и это сработало !!

Сурадж Вайшнав
источник
2

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

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

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

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

Это оно.

Fatihd
источник
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. Готово.

tejraj
источник
0

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

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

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

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

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

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

Инзимам Тарик ИТ
источник