执行git checkout切换分支时出现error: invalid path错误如何解决
可行解决方法
你之前的配置未生效主要有两个原因:
- 参数拼写错误:
core.protectNTFS被误写为core.protectNFTS,导致NTFS路径保护规则没有关闭- 稀疏检出未指定允许拉取的路径,默认只会拉取空目录,所以出现所有文件夹被删除的情况
方法一:正确配置稀疏检出(适用于Windows原生环境,无需额外工具)
这是最适配你需求的方案,仅拉取你需要的指定目录,避开含非法字符的路径,完整流程如下:
- 新建空文件夹作为本地仓库目录,进入目录后依次执行以下命令:
git init git remote add origin <替换为你的开源仓库URL> git config core.protectNTFS false git config core.sparseCheckout true
- 打开仓库目录下的
.git/info/sparse-checkout文件,写入你需要使用的特定目录路径,注意不要包含带双引号的Steps for Machine Learning "MLOps"目录,示例:
# 仅拉取你需要的目录,比如你要用到Datascience_With_Python/DeepLearning/下的所有内容就写: Datascience_With_Python/DeepLearning/*
- 执行拉取和分支切换操作:
git fetch origin git checkout Datascience_With_Python
执行完成后本地只会存在你指定的目录,不会触发非法路径报错。
方法二:使用WSL环境操作(适用于需要完整拉取分支的场景)
Windows的NTFS文件系统默认禁止路径包含双引号,而Linux文件系统无此限制。你可以开启Windows Subsystem for Linux(WSL),在WSL的内置Linux文件系统中执行克隆、切换分支操作,完全不会触发路径非法报错,所有文件都可以正常读取修改。
方法三:单文件操作(适用于仅需要修改少量文件的场景)
如果你不需要拉取整个目录,仅需要查看、修改少量指定文件,可以直接用git命令操作索引,无需完整checkout分支:
- 读取指定分支的文件内容:
git show Datascience_With_Python:<文件在仓库中的完整路径> - 导出文件到本地:
git show Datascience_With_Python:<文件路径> > 本地保存的文件名 - 修改完成后可以直接提交到远程分支,无需拉取全量代码。
内容的提问来源于stack exchange,提问作者rica_programmer
相关产品推荐
相关产品推荐

