克隆私有Git仓库时出现工作树检出失败问题求助
解决Git克隆私有仓库时的invalid path及工作树检出失败问题
问题根源
你遇到的invalid path 'assets/icon-128.png:Zone.Identifier'错误,是因为仓库里包含了Windows NTFS文件系统的交替数据流(ADS)文件——这类文件是浏览器下载文件时自动添加的安全标记,文件名里带有冒号(Windows原生文件系统不允许文件名含冒号),导致Git无法在Windows环境下正常检出工作树。
而你执行git init后,当前目录变成了一个空的Git仓库,和目标远程仓库没有关联,后续克隆会把远程内容下载到子目录中,才会出现未跟踪的word-add-in目录,属于操作混乱导致的额外问题。
解决步骤
1. 清理错误操作残留文件
先删除当前目录下的空Git仓库和多余子目录,回到干净状态:
- Windows PowerShell命令:
Remove-Item -Recurse -Force .git, word-add-in - Linux/macOS或Git Bash命令:
rm -rf .git word-add-in
2. 正确克隆并处理ADS文件
方法一:临时禁用Git的NTFS保护(适合个人使用)
先克隆仓库但不立即检出工作树,再配置Git允许NTFS特殊路径,最后完成检出:
# 克隆但不检出工作树 git clone --no-checkout <你的私有仓库URL> # 进入克隆后的仓库目录 cd <仓库名称> # 禁用NTFS路径保护,允许包含冒号的路径 git config core.protectNTFS false # 检出工作树(默认分支是master则替换成master) git checkout main
方法二:删除仓库内的冗余ADS文件(适合仓库维护者)
如果这些Zone.Identifier文件是意外提交的无用文件,直接在仓库中删除并推送到远程,后续所有人克隆都不会再遇到问题:
# 进入维护者本地已有的仓库目录 # 删除所有带Zone.Identifier的ADS文件(引号避免shell解析冒号) git rm --cached "*.png:Zone.Identifier" # 提交删除操作 git commit -m "Remove Windows Zone.Identifier ADS files" # 推送到远程仓库 git push
之后正常执行git clone <仓库URL>即可完成克隆。
预防措施
- 全局配置Git禁用NTFS保护,避免后续遇到同类问题:
git config --global core.protectNTFS false - Windows上下载文件后,若不需要保留安全标记,可使用Sysinternals的
streams工具删除ADS:streams -d <目标文件>
内容的提问来源于stack exchange,提问作者M Јǚйáĩď
相关产品推荐
相关产品推荐

