Windows
1.開啟命令列
2.修改目前路徑到該repo
3.執行chcp 65001
4.執行for /f "delims=" %f in ('git ls-files -i -c --exclude-from=.gitignore') do git rm --cached "%f"
for /f "delims=" %f
:使用 delims=
避免空格導致的分割問題,確保整個檔名被正確處理。in ('git ls-files -i -c --exclude-from=.gitignore')
:執行 git ls-files
並將輸出逐行存入變數 %f
。git rm --cached "%f"
:用雙引號包住變數,確保帶空格的檔案名稱能被正確處理。Linux
1.開啟命令列
2.修改目前路徑到該repo
3.執行git ls-files -i -c --exclude-from=.gitignore -z | xargs -0 git rm --cached
-z
:讓 git ls-files
以 NUL (\0
) 分隔檔名,防止空格或特殊字符導致問題。xargs -0
:讓 xargs
以 NUL 分隔來處理檔名,確保帶空格的檔案能被正確傳遞給 git rm --cached
。參考來源:ChatGPT