git拉取程式碼報錯invalid path解決,以及windows的一個坑

CodingLyfe發表於2024-11-15

錯誤日誌:

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改名

相關文章