如何仅克隆Git仓库单个子目录?WSL下稀疏检出操作失败如何解决?
问题修复步骤
你遇到的是稀疏检出规则未生效的问题,按以下步骤排查即可:
1. 确认路径配置正确
首先确认Exercise2是远端仓库根目录下的一级目录,如果该目录在仓库内的嵌套路径下(比如course/Exercise2/),你需要在.git/info/sparse-checkout中填写完整的相对路径,不能只写目录名。
执行以下命令确认配置的规则是否正确:
cat .git/info/sparse-checkout
输出必须和实际路径完全一致,不能有多余的空格、换行符。
2. 重新应用稀疏检出规则
你已经拉取过远端代码,本地已经有完整的提交记录,直接执行以下命令重新按规则检出文件即可,不需要重复拉取:
git sparse-checkout reapply
如果执行后仍然没有对应目录,执行重置命令覆盖本地工作区(本地无未提交修改时可放心执行):
git reset --hard origin/main
更稳妥的替代操作方案
Git 2.25及以上版本提供了官方的稀疏检出命令,不需要手动修改配置文件,出错概率更低,你可以清空当前目录后按以下步骤重新操作:
# 克隆仓库但不检出任何文件,仅拉取必要的提交信息 git clone --filter=blob:none --sparse <你的仓库SSH地址> # 进入仓库目录 cd <仓库名称> # 设置需要检出的子目录 git sparse-checkout set Exercise2/ # 拉取对应文件 git pull origin main
内容的提问来源于stack exchange,提问作者Setembru
相关产品推荐
相关产品推荐

