背景说明

在 GitHub 上,Git 原生不支持直接 clone 仓库中的某一个文件夹
这是因为 Git 的最小版本单位是 整个仓库的提交快照(commit),而不是单个目录。

不过,从 Git 2.25 开始,可以使用 Sparse Checkout(稀疏检出) 来实现
👉 “只把某个目录下载到本地,同时保留 Git 能力”


适用场景


前置条件


使用 Sparse Checkout 的完整步骤

1️⃣ 克隆仓库(不检出文件)

git clone --filter=blob:none --no-checkout https://github.com/用户名/仓库名.git
cd 仓库名

说明:


2️⃣ 初始化 sparse-checkout

git sparse-checkout init --cone

--cone 模式是官方推荐方式,语法更简单,性能更好。


3️⃣ 指定需要的目录

git sparse-checkout set path/to/folder

示例(只检出 src/components):

git sparse-checkout set src/components

4️⃣ 检出分支

git checkout main

如果仓库使用的是 master 或其他分支,请相应替换。


最终效果


常见问题

❓ 能不能同时指定多个目录?

可以:

git sparse-checkout set dir1 dir2 dir3

❓ 之后想恢复整个仓库怎么办?

git sparse-checkout disable

小结

项目 说明
是否官方支持 ✅ 是
是否只下载指定目录 ✅ 是
是否保留 Git 功能 ✅ 是
推荐程度 ⭐⭐⭐⭐⭐

参考