git 在 windows 上的錯誤訊息:invalid path

前言

有時我會在家中操作公司的專案。今天在家上班想 git clone 公司專案時,卻出現 error: invalid path '_scripts/update_build:dev.sh 的訊息。在公司時,我是用 macbook 操作專案,在家則是用 windows 筆電操作。以下是解決過程

問題點

因為 unix-like (macos) 系統的檔名對字元的限制比較寬鬆,而 windows 系統則比較嚴格。根據 stackOverflow 上的網友表示,unix-like 只有限制不能使用 / (forward slash) 字元作為檔名。而 windows 則有以下的檔名字元限制清單

1
2
3
4
5
6
7
8
9
< (less than)
> (greater than)
: (colon - sometimes works, but is actually NTFS Alternate Data Streams)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

解決方式

其中最簡單的解決方式是,取檔名時迴避 unix-like 跟 windows 系統限制的字元。以我的狀況為例,我有一個 update_build:dev.sh 檔案,其中的 : 字元是 windows 系統檔名的限制字元。把 : 改成 _ 後,git clone 就能順利執行了

參考資料

windows 官方

其他