Git clone成功但checkout失败,提示invalid path错误问题求助
问题原因
该报错由Windows操作系统的文件名规则限制触发。Windows系统禁止文件名/路径中出现:、<、>、"、/、\、|、?、*特殊字符,本次报错指向的文件public/LSPDF/NewGen/3/English/Book-1:-What-Strange-Creatures!.pdf名称包含冒号,Git执行checkout时无法在本地创建该非法路径的文件,最终流程失败。
解决方法
根据你是否有权限修改远程仓库,可选择对应方案:
方案1:有权限修改远程仓库(最优解,永久解决问题)
- 使用macOS/Linux设备执行clone操作(Unix类系统允许文件名包含冒号,可正常拉取全部文件)
- 将该问题文件重命名,把名称中的冒号替换为下划线、横杠等合法字符,例如修改为
Book-1-What-Strange-Creatures!.pdf - 提交修改并推送到远程仓库,之后所有Windows设备都可以正常执行clone操作
方案2:无权限修改远程仓库,仅需拉取其他代码使用
临时绕过校验
在Git Bash中执行以下命令,配置Git跳过NTFS路径合法性校验,之后重新clone即可:
git config --global core.protectNTFS false
该配置仅跳过校验,带冒号的问题文件依旧无法被正常拉取到本地,其他文件可正常checkout。
稀疏检出跳过问题目录
如果你明确不需要包含该问题文件的目录,可以通过稀疏检出仅拉取需要的内容:
- 本地创建空目录并初始化Git仓库,关联远程地址
mkdir velammal_cms cd velammal_cms git init git remote add origin <你的远程仓库地址>
- 开启稀疏检出配置
git config core.sparseCheckout true
- 编辑
.git/info/sparse-checkout文件,写入需要拉取的目录规则,例如如下配置代表拉取所有内容,排除问题目录:
/* !public/LSPDF/NewGen/3/English/
- 执行拉取操作即可
git pull origin main
内容的提问来源于stack exchange,提问作者Jayanthi
相关产品推荐
相关产品推荐

