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
для мене редагування запуску протоколу та перезапис того ж виправленого. Можливо, якісь невидимі utf-персонажі зіпсували речі.
Зенівасан

Відповіді:


630

Я скопіював і встав цілу лінію git clone http://....

Символ між git cloneі http://...виглядає як пробіл, але це особливий символ Unicode !

Коротка відповідь: Після видалення цього персонажа та виходу в реальний простір він спрацював!

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

Шлях1: Пітон

Ось справжня лінія:

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

Шлях2: менше

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

Якщо це виглядає так git clone <E2><80><8B><E2><80><8B>http://, ви копіюєте + вставлені спеціальні символи unicode.


8
Приємна знахідка! Причиною тому, мабуть, є ікона.
ткнути

5
Я витратив 3 години на пошуки проблеми із SSH / ключами / підключенням / подачею ключів до Gitlab лише тому, що у мене було відхилено повідомлення у відкритих ключах. : / Тоді я перейшов на https та отримав повідомлення "не справляйся", яке підказало мені. І вся ця проблема була завдяки простору Unicode, схожий на простір. Багато, велике спасибі вам @guettli та комбо Google / SO, які мене привели сюди.
LAFK повідомляє про відновлення Моніки

3
Дякую. Я бачу два способи отримати заокруглення: git може зняти ці спеціальні символи або оболонку (я використовую bash). Я витрачав час, ти витрачав час .... якщо підсумувати це, я думаю, це могли бути роки людського часу ... даремно. Це сумно.
guettli

5
те саме тут - копіювання посилання з github в оболонку Windows GIT
ootwch

1
@CiroSantilli 烏坎 事件 2016 六四 事件 法轮功 дякую! xselвиводить вміст буфера обміну і hdробить шістнадцятковий дамп. Приємно.
гуетлі

56

Використовуйте зворотну простір, щоб видалити все, що між git cloneними, urlа потім скористайтеся пробілом, щоб додати чистий простір між ними. Просто як це.


@KathiravanNatarajan Я радий, що це було корисно.
Феліпе Беллуко

25

Я просто додав 5 "SPACE" між cloneі url:

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

і це працює!


@guettli Це працює лише при додаванні 5 простору між клоном та http (ими)! коли я читаю цю відповідь, я намагаюся додати місця, тому що я поспішав і не міг використати це рішення. Це було випадково, і я не знаю, чому це працює!
J.Hpour

16

Підсумок: Введіть URL, а не копіюйте його в командному рядку. Це працювало для мене.


1
Короткий зміст відповіді вище: Символ між клоном та http: // ... виглядає як пробіл, але це особливий символ Unicode! Після видалення цього порожнього символу та входу в реальний простір воно спрацювало! Матеріал із t.txt призначений саме для людей, які цікавляться "чому", а не лише "роботами".
guettli

1
Про це вже говорилося в кількох інших відповідях (включаючи прийняту відповідь).
Піка Чарівник китів

14

Переважно це пов'язано з деякими невидимими символами unicode, які можуть з'явитися, якщо ви натиснете "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
Я здогадуюсь, що простий удар на
задній простір

4

Будь ласка, не копіюйте з буфера обміну. Просто скопіюйте URL-адресу з місцезнаходження / адресної панелі браузера.введіть тут опис зображення


URL-адреси не було в моєму адресному рядку. Це був звичайний текст у вікі.
guettli

ні .. коли вставити URL-адресу в git bash.Помітка після клонування git {your repo URL} .it приймає додатковий символ між клоном та URL-адресою repo. що ви можете перевірити, видаливши або натиснувши на зворотній простір перед URL-адресою репо
Naveen Gupta

3

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


Чому ви пишете цю відповідь? Як ви думаєте, у поточній відповіді щось не вистачає?
guettli

1
Привіт гуетлі, ви впевнені, що перезапис лише символу пробілу вирішить згадану проблему у всіх можливих випадках? Чи можливо щось зайве / неправильне не в пробілі, а в символах, включених у текст URL-адреси?
Арсен

звичайно, спеціальні символи Unicode можуть бути де завгодно. До своєї відповіді я додав другий спосіб "розкрити символи ascii vs special unicode".
гуетлі


2

Рішення дуже просте:

1- Скопіюйте свій git шлях. наприклад : 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 клонувати URL. Я використовую OS Windows 10 і gitbash.


Це вчинило саме таку помилку. Прийнята відповідь працювала на мене. Тож вирішено
Калат

1

якщо ви використовуєте Windows, використовуйте мовленнєві позначки 'URL', щоб відкрити та закрити URL-адресу, наприклад, git clone 'your-url-here'


1

Будь ласка, перевірте URL-адресу, яку ви вставили, і це займе додаткові години після клонування.

Отже, або ви вставили повний клон git, http://<URL>.gitабо просто видаліть додатковий лист перед URL-адресою сховища git.


Що ви маєте на увазі під "додатковим h"?
guettli

1

у візуальному варіанті коду студії git: клонуйте я спробував кожну річ, наприклад, поставивши 5 зворотних просторів, видаливши спеціальний символ Unicode! і розміщення місця для мене нічого не працює

рішення працює для мене

просто відкрийте git bash і вставити весь URL-код клона Git і готово,

Здається, є проблема з кодом візуальної студії


1

Це просто трапилося з нами без проблем з пробілом, і зміни, https:щоб http:виправити це ...


Приємно, що це працює для вас. Але я думаю, що справжньою проблемою був особливий пробіл символів, який ви видалили, натискаючи на backspace. Я не впевнений, чи справді це правильна відповідь на це питання.
guettli

Я не думаю, що так. Я набрав його з нуля кілька разів і отримав ту саму помилку.
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

Якщо ви використовуєте GI Extensions GUI або GitHub Desktop (тобто якщо ви використовуєте будь-яке програмне забезпечення інтерфейсу користувача, а не інструмент командного рядка) для клонування репо, тоді вам доведеться скопіювати та вставити лише URL, тобто https: // ... Отже не потрібно мати git cloneURL-адресу, оскільки це програмне забезпечення зробить це самостійно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.