当前位置: 首页 > news >正文

如何从 GitHub 大仓库中只下载指定目录

🚀 如何从 GitHub 大仓库中只下载指定目录(以 “初中” 目录为例)

在使用 GitHub 时,我们有时会遇到仓库体积特别大(例如几十 GB),
但其实我们只需要其中某一个目录,比如 初中高中小学 等。
本文将介绍一种 高效、不下载整个仓库 的方法,只获取所需目录内容。


🧠 背景问题

有时候你会遇到类似这种仓库:

https://github.com/xxxxxx/ChinaTextbook

整个仓库体积高达 41GB+
而你只想下载其中的:

https://github.com/xxxxxx/ChinaTextbook/tree/master/初中

如果直接执行:

git clone https://github.com/xxxxxx/ChinaTextbook.git

那会把整个仓库下载下来,非常耗时且占用大量磁盘空间。


✅ 解决方案:使用 git sparse-checkout

git sparse-checkout 是 Git 2.25+ 提供的一个功能,
可以让我们只检出(checkout)仓库中部分目录,
从而节省时间与存储。


🧩 实操步骤

以下是在 Windows 下的完整命令流程(macOS / Linux 同理):

# 1. 克隆仓库(但不立即下载文件内容)
git clone --filter=blob:none --no-checkout https://github.com/xxxxxx/ChinaTextbook.git# 2. 进入仓库目录
cd ChinaTextbook# 3. 启用稀疏检出模式
git sparse-checkout init --cone# 4. 只设置要下载的目录(例如 “初中”)
git sparse-checkout set 初中# 5. 检出主分支
git checkout master

⚠️ 注意:

  • 有些新仓库的默认分支是 main,但老仓库一般是 master

  • 如果执行 git checkout main 提示错误:

    error: pathspec 'main' did not match any file(s) known to git
    

    那就说明该仓库使用的是 master 分支。


🔍 如何确认分支名?

执行以下命令查看分支:

git branch -a

示例输出:

* masterremotes/origin/master

说明主分支是 master,那么就用:

git checkout master

🎯 结果

执行完以上命令后,本地只会下载仓库中 初中 目录下的文件,
不会下载整个 40GB 的仓库内容!

目录结构大概如下:

ChinaTextbook/└── 初中/├── 语文/├── 数学/├── 英语/└── ...

📦 想下载多个目录?

如果你还想同时下载多个目录,比如:

初中
高中
小学

可以这样设置:

git sparse-checkout set 初中 高中 小学

Git 会自动拉取这些目录。


🧹 清理与退出稀疏模式

如果后续需要恢复完整仓库,可以执行:

git sparse-checkout disable

这样就能重新下载整个仓库的内容。


🏁 总结

步骤命令说明
1git clone --filter=blob:none --no-checkout <repo>只拉取元数据
2git sparse-checkout init --cone启用稀疏检出
3git sparse-checkout set <目录>指定要下载的子目录
4git checkout master检出实际内容

🧰 适用场景

  • 大型数据集仓库(如 10GB+)
  • 只想获取某个子目录(如 dataset/train
  • GitHub 下载限速或空间不足
  • 迁移部分目录到 Gitee 或本地存储

✨ 结语

通过 git sparse-checkout
我们可以像“点菜”一样精准获取所需目录,
再也不用被庞大的仓库体积困扰!

http://www.dtcms.com/a/536522.html

相关文章:

  • LeetCode 22. 括号生成
  • IHR 2025 | 移远通信携Robrain AI解决方案亮相,开启机器人全感官交互新纪元
  • 淘宝客做网站自动更新写wordpress插件吗
  • 金融--------
  • 视频号AI口播:中老年赛道发力
  • 「LegionSpace Hackathon」 通付盾第六届黑客松即将开启
  • STM32外设面试速通:UART、I2C、SPI、DMA、RAM/FLASH与ADC/DAC
  • “芯”动力,净无止境:华芯微特的吸尘器控制方案详解
  • FFmpeg 基本数据结构 AVIOContext分析
  • SAP SD系统开票审批功能分享
  • 有口碑的常州网站优化wordpress发邮件慢
  • 注册中心(discovery)和配置中心(config)
  • Abaqus部件间Cohesive单元建立的共面识别技术
  • 建设网站有哪些步骤金螳螂装饰公司
  • 商城网站建设公司排行在线代理网页浏览
  • 【Linux】多线程同步与互斥机制详解:从互斥锁到条件变量与信号量
  • iOS混淆实战用多工具组合把IPA加固做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆
  • RTPENGINE ISSUE 1818(silent-timeout有关)
  • LeetCode:231. 2 的幂/136. 只出现一次的数字
  • Flutter fedaora42 64位安装 避坑指南
  • Docker自动化部署与配置详解③
  • istio业务返回503问题
  • 建设服装网站的意义国内免费空间可以做什么网站
  • 餐饮商城网站制作多少钱动漫设计一年学费多少
  • Web 前端工具全流程指南 从开发到调试的完整生态体系
  • 清理谷歌浏览器垃圾文件 Chrome “User Data”
  • 科技创新的重要前沿是新网站前期seo怎么做
  • [论文笔记•(多智能体)]LLMs Can Simulate Standardized Patients via Agent Coevolution
  • CAS:2055198-03-1,PC-Biotin-PEG4-NHS carbonate在分子标记与生物分析中的应用潜力
  • 人工智能时代医疗大健康微服务编程:架构与实践(代码部分)