git: fatal: Tôi không xử lý giao thức 'http'


307

Tôi sao chép và dán lệnh git clone từ một trang web: https://fedorahosted.org/ibus-typing-booster/

Tôi hiểu rồi:

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'

Bạn cũng có thể lấy URL (chính xác) từ cuối chế độ xem kho lưu trữ tại đây .
chọc

@poke URL là chính xác. Tôi không hiểu những gì bạn muốn nói với tôi.
guettli

Bạn có thể sao chép / dán nó từ đó. Đó là URL được tạo bởi trình xem kho lưu trữ và không phải là URL được chèn thủ công trong một số wiki, vì vậy nó có thể đúng hơn.
chọc

15
Điều này đã xảy ra với tôi khi sử dụng msys-git và cố gắng dán (với ctrl-v và ctrl-shift-v), trước khi nhận ra chúng không phải là phím tắt hợp lệ. Làm lại lệnh và dán bằng cách nhấp chuột phải-> dán dường như hoạt động.
Casey Kuball

1
cho tôi chỉnh sửa bắt đầu giao thức và thử lại cùng một bản sửa lỗi. Có thể là một số nhân vật utf vô hình làm rối tung mọi thứ.
Seenivasan

Câu trả lời:


630

Tôi đã sao chép và dán toàn bộ dòng git clone http://....

Ký tự giữa git clonehttp://...trông giống như một khoảng trắng, nhưng nó là một ký tự Unicode đặc biệt !

Câu trả lời ngắn: Sau khi loại bỏ nhân vật này và bước vào một không gian thực, nó đã hoạt động!

Đối với những người yêu thích chi tiết: Tôi thấy hai cách để tiết lộ ascii vs đặc biệt-unicode-character

Cách 1: Python

Đây là dòng thực sự:

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

Cách 2: ít hơn

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

Nếu nó trông giống như vậy git clone <E2><80><8B><E2><80><8B>http://, thì bạn sao chép + dán các ký tự đặc biệt-unicode.


8
Đẹp tìm thấy! Lý do cho điều đó có lẽ là biểu tượng đó.
chọc

5
Tôi đã dành 3 giờ để tìm kiếm một vấn đề với SSH / khóa / kết nối / gửi các khóa cho Gitlab chỉ vì tôi có một tin nhắn bị từ chối công khai. : / Sau đó, tôi chuyển sang https và nhận được thông báo "không xử lý", điều này cho tôi biết. Và tất cả những rắc rối đó là nhờ vào không gian Unicode giống nhau. Rất, rất nhiều cảm ơn bạn kết hợp @guettli và Google / SO đã dẫn tôi đến đây.
LAFK nói Phục hồi lại

3
Cảm ơn bạn. Tôi thấy có hai cách để giải quyết vấn đề: git có thể loại bỏ các ký tự đặc biệt hoặc vỏ (tôi sử dụng bash). Tôi lãng phí thời gian, bạn lãng phí thời gian .... nếu bạn tóm tắt điều này, tôi đoán đây có thể là năm của con người ... lãng phí. Thật đáng buồn.
guettli

5
tương tự ở đây - sao chép liên kết từ github vào windows GIT shell
ootwch

1
@CiroSantilli 事件 2016 六四 事件 cảm ơn bạn! xselxuất nội dung clipboard và hdthực hiện kết xuất hex. Đẹp.
guettli

56

Sử dụng phím lùi để xóa bất cứ điều gì có giữa git cloneurlvà sau đó sử dụng phím dài để thêm một không gian sạch giữa chúng. Đơn giản như vậy.


@KathiravanNatarajan Tôi rất vui vì nó hữu ích.
Felipe Belluco

25

Tôi chỉ cần thêm 5 "KHÔNG GIAN" giữa cloneurl:

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

Và nó hoạt động!


@guettli Nó chỉ hoạt động khi thêm 5 khoảng trắng giữa bản sao và http (s)! Khi tôi đọc câu trả lời này, tôi cố gắng thêm một số khoảng trống, vì tôi đang vội và tôi không thể sử dụng giải pháp này . Nó đã vô tình và tôi không biết tại sao nó hoạt động!
J.Hpour 27/03/18

16

Tóm tắt: Nhập url thay vì sao chép dán nó trong dòng lệnh. Nó làm việc cho tôi.


1
Tóm tắt từ câu trả lời trên: Ký tự giữa clone và http: // ... trông giống như một khoảng trắng, nhưng nó là một ký tự Unicode đặc biệt! Sau khi loại bỏ nhân vật trống rỗng này và bước vào một không gian thực, nó đã hoạt động! Nội dung với t.txt chỉ dành cho những người quan tâm đến "tại sao" và không chỉ trong "công việc".
guettli

1
Điều này đã được đề cập trong một số câu trả lời khác (bao gồm cả câu trả lời được chấp nhận).
Pika Phù thủy của Cá voi

14

Chủ yếu là do một số ký tự unicode vô hình có thể xuất hiện nếu bạn nhấn "Ctrl + V" hoặc "Ctrl + Shift + V" trong thiết bị đầu cuối. Không sao chép và dán toàn bộ lệnh. Thay vào đó, hãy nhập git clone, sau đó sao chép và dán url bằng Nhấp chuột phải + Dán.


13

Giải pháp của tôi:

  1. Loại : git clone.
  2. Sao chép url kho lưu trữ và dán nó sau git clone.
  3. Di chuyển con trỏ đến vị trí giữa git clonehttps://....
  4. Xóa không gian nếu nó có giữa git clonehttps://...cho đến khi cógit clonehttps://...
  5. Thêm lại không gian và nhấn Enter.

đáng ngạc nhiên là nó hoạt động ngay cả khi bạn không thêm lại không gian
Kiểu dáng

11

Tôi đã sử dụng dấu ngoặc kép cho URL và nó hoạt động. Vì vậy, một cái gì đó như

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

hoạt động .. báo giá duy nhất không giúp đỡ. Nó phải được trích dẫn gấp đôi.


4

Bạn cũng có thể sử dụng trình soạn thảo văn bản:

  • Dán URL trong trình soạn thảo văn bản
  • Sao chép URL vừa được dán từ trình soạn thảo văn bản
  • Dán nó vào dòng lệnh

2
Tôi đoán một cú đánh đơn giản vào backspace cũng có ích
guettli 18/03/2016

4

Xin đừng sao chép từ bảng ghi tạm. Chỉ cần sao chép url từ vị trí / thanh địa chỉ của trình duyệt của bạn.nhập mô tả hình ảnh ở đây


Các url không có trong thanh địa chỉ của tôi. Đó là văn bản đơn giản trong một wiki.
guettli

không .. khi dán URL vào git bash. Giả sử sau git clone {URL repo của bạn} .it có thêm ký tự giữa bản sao và URL repo của bạn. mà bạn có thể kiểm tra bằng cách xóa hoặc nhấn backspace trước url repo của bạn
Naveen Gupta

3

Vấn đề tương tự xảy ra với tôi khi tôi vừa sao chép url vào bảng tạm và sau đó dán nó vào thiết bị đầu cuối. Viết lại toàn bộ dòng mà không có tùy chọn sao chép đã giải quyết vấn đề của tôi.


Tại sao bạn viết câu trả lời này? Bạn có nghĩ rằng câu trả lời hiện tại đang thiếu một cái gì đó?
guettli

1
Xin chào guettli, Bạn có chắc rằng chỉ viết lại ký tự khoảng trắng sẽ giải quyết vấn đề được đề cập trong tất cả các trường hợp có thể? Có thể có một cái gì đó dư thừa / không chính xác không phải trong khoảng trắng mà cả trong các ký hiệu có trong văn bản url không?
Asen

tất nhiên các ký tự unicode đặc biệt có thể ở bất cứ đâu. Tôi đã thêm một cách thứ hai để "tiết lộ ascii vs các ký tự unicode đặc biệt" vào câu trả lời của tôi.
guettli

3

Trong Studio Android:

Tôi đã xóa git clone và chỉ giữ lại url và nó đã hoạt động !!



1

nhân bản dưới đây:

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

đưa ra lỗi:

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

Sửa đổi nó thành:

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

hoạt động hoàn hảo hoặc bạn có thể chỉ cần sao chép url. Tôi đang sử dụng os windows 10 và gitbash.


Nó đã làm chính xác lỗi tương tự. Câu trả lời được chấp nhận làm việc cho tôi. Vì vậy, nó đã được giải quyết
Callat

1

nếu bạn đang sử dụng windows, hãy sử dụng dấu phát biểu 'url' để mở và đóng url của bạn, ví dụ như git clone 'your-url-here'


1

Vui lòng kiểm tra URL bạn đã dán và phải mất thêm h sau khi sao chép.

Vì vậy, hoặc bạn đã dán bản sao git đầy đủ http://<URL>.githoặc chỉ xóa thư bổ sung trước URL kho lưu trữ git.


Bạn có ý nghĩa gì với "h thêm"?
guettli

1

trong tùy chọn mã phòng thu trực quan git: clone tôi đã thử mọi thứ, ví dụ như đặt 5 backspace, xóa ký tự Unicode đặc biệt! và đặt không gian không có gì làm việc cho tôi

giải pháp hiệu quả với tôi

chỉ cần mở git bash và dán toàn bộ url git clone và thực hiện,

có vẻ như có một số vấn đề với mã studio hình ảnh


1

Điều này chỉ xảy ra với chúng tôi mà không có bất kỳ vấn đề khoảng trắng nào, và thay đổi https:để http:sửa nó ...


Đẹp, điều này làm việc cho bạn. Nhưng tôi nghĩ vấn đề thực sự là ký tự khoảng trắng đặc biệt mà bạn đã loại bỏ bằng cách nhấn backspace. Tôi không chắc chắn nếu đây thực sự là một câu trả lời hợp lệ cho câu hỏi này.
guettli

Tôi không nghĩ vậy. Tôi đã gõ nó từ đầu nhiều lần và gặp lỗi tương tự.
beroe

và bạn nhận được thông báo lỗi "git: fatal: Tôi không xử lý giao thức 'http'"?
guettli

1
Thật buồn cười nhưng tôi cũng gặp vấn đề này và tôi đã khắc phục nó bằng giải pháp này và tôi khá chắc chắn rằng tôi không có bất kỳ ký tự khoảng trắng đặc biệt nào
Babak Habibi

1

Câu trả lời liên quan với câu hỏi này.
Lỗi - nghiêm trọng: Tôi không xử lý giao thức 'git clone https'
Tôi đang cố sao chép dự án git vào VScode mới cài đặt trong hệ thống Linux của mình, tôi đã sao chép toàn bộ url từ bit xô, giống như

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


Nhưng thực ra nó chạy lệnh như

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

trong thùng bit.
Vì vậy, chỉ cần thực hiện các bước sau:
1. Nhập Ctr + p; Điều này sẽ mở hộp lệnh. Nhập và mở 'Clone'
2. Bây giờ chỉ dán url của git repos Hô hấp của bạn ở đây. ví dụ: https: //abc@bitbucket.org/abcuser/myproject.git
3. Sau đó, hộp nhập mật khẩu git của bạn sẽ xuất hiện trên màn hình. Nhập mật khẩu git của bạn ở đây.
4. Xong.


0

Cũng giống như nếu bạn sao chép dán liên kết kho lưu trữ, bạn sẽ gặp vấn đề này.

Những gì tôi đã nhận thấy nó này

  1. Nếu bạn sử dụng nút sao chép trên GitHub và sau đó dán URL vào GitBash (Windows), nó sẽ gây ra lỗi này
  2. Nếu bạn chọn liên kết và sau đó dán thì nó hoạt động hoặc bạn cũng có thể chỉ cần nhập URL hoạt động tốt.

Vì vậy, tôi nghĩ rằng nó có thể là một vấn đề với nút sao chép GitHub


Tôi đã không sao chép nó từ github. Tôi nghĩ rằng đó là vấn đề hệ thống quản lý trac.
guettli

0

Nếu bạn đang sử dụng GUI mở rộng Git hoặc GitHub Desktop (có nghĩa là nếu bạn đang sử dụng bất kỳ phần mềm UI nào và không phải công cụ dòng lệnh) để sao chép repo thì bạn phải sao chép và chỉ dán URL, ví dụ https: // ... Vì vậy không cần phải có git clonetrước URL vì Phần mềm đó sẽ tự làm điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.