[git] fatal: I don't handle protocol 'https' 原因與解決

有點神奇的事情。

有時候在 clone git 專案時,會在 command line 或 windows bash 得到這種錯誤:

1
user@host> git clone http://github.com/douduck08/foo.git ... fatal: I don't handle protocol 'http' or fatal: I don't handle protocol 'https'

今天終於知道原因與解法了。

本來以為這是 windows bash 的某種 bug,但原來只是字元問題。

在 git clonehttps 之間雖然看起來是空白,但其實另外夾著一些字元,導致 url 無法被正常辨識。這種錯誤往往是從網頁反白複製 git url 時會出現,就連 github 也是如此:

1491455962806

解決方法很簡單,把空白刪掉重打一次 正常的空白 就恢復正常了。

那段不明的字元似乎是 Zero-width space,直譯就是零寬度空白,通常用於排版或反制 url 偵測。

參考