UE5项目中Git Bash批量删除Git缓存文件失败求助
解决Git批量移除UE5项目大文件的路径匹配问题
问题根源
你碰到的pathspec 'xxx?'错误,本质是Windows文本文件的CRLF换行符(\r\n)被读取时,\r被当成了路径的一部分,导致Git识别的路径末尾多了个隐藏回车符,最终表现为?。
解决方案
方法1:修正换行符后循环执行
用tr命令清理文件中的回车符,同时用IFS= read -r确保路径里的空格、特殊字符被正确解析:
while IFS= read -r line; do git rm --cached "$line"; done < <(tr -d '\r' < filestoremove.txt)
方法2:单条xargs命令批量处理
这是更简洁的单条命令写法,同样先清理换行符再批量执行:
tr -d '\r' < filestoremove.txt | xargs -I {} git rm --cached "{}"
前置检查
- 执行命令时,确保当前工作目录是Git仓库根目录(即包含
.git文件夹的目录)——你的filestoremove.txt和Content目录同目录,仓库根目录应该就是Content的父目录。 - 可以先验证路径有效性,排查无效路径:
tr -d '\r' < filestoremove.txt | xargs -I {} git ls-files --error-unmatch "{}"
这条命令会列出Git能识别的路径,报错的就是需要修正的无效路径。
内容的提问来源于stack exchange,提问作者Rai Bizerra Maciel
相关产品推荐
相关产品推荐

