錯誤日誌:
Cloning into 'overmind-efficiency'...
remote: Enumerating objects: 702, done.
remote: Counting objects: 100% (702/702), done.
remote: Compressing objects: 100% (286/286), done.
remote: Total 126341 (delta 287), reused 581 (delta 221), pack-reused 125639
Receiving objects: 100% (126341/126341), 47.01 MiB | 3.64 MiB/s, done.
Resolving deltas: 100% (61146/61146), done.
error: invalid path 'overmind-efficiency-core/src/main/java/com/netease/overmind/efficiency/order/constant/Con.java'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
現象 git clone 時,報錯。下下來的內容裡只有孤零零的 .git資料夾
git status 檢視後發現本地倉庫裡所有的檔案狀態都是deleted。
一開始,我以【warning: Clone succeeded, but checkout failed.】為關鍵字去檢索相關解決方案,無果。
後來我轉換思路,以【error: invalid path】為關鍵字去檢索相關解決方案,查到了相關的解決方案:
問題原因
程式碼中包含 NTFS 檔案系統不支援的檔名。(原始碼可能是在 Mac 或 Linux 等其他系統下開發的)
Git 在 Windows 下預設開啟了 NTFS 保護機制,導致包含不滿足 NTFS 檔名的專案無法被成功拉取,且無法切換到這些不滿足 NTFS 檔名規範的資料夾中。
解決方法
關閉 NTFS 保護機制的配置,操作命令如下:
git config core.protectNTFS false
重新clone後,檔案成功下載。
但是!!!不滿足 NTFS 檔名的單一檔案還是無法下載成功。Con.java這個檔案還是沒能下載下來。
我去google上同樣以【error: invalid path】為關鍵字去檢索,找到了一篇內容,裡面提到了:
【Nothing appears to be wrong with the path. The issue is that the base name of the file is con which is a reserved name in Windows.】
con是windows的保留字,資料夾或是檔名是不可以命名為con的(windows還不區分大小寫)
所以最終的解決方案就是將con.java改名