可单独下载 github 子文件夹的四种方法:一、用 downgit 工具将 tree url 改为 raw 后生成 zip;二、用 svn export 命令通过 svn 协议导出;三、用 github cli 的 gh repo download 按路径筛选下载;四、调用 github archive api 获取树结构 sha 后下载 tarball。

如果您希望从 GitHub 仓库中仅获取某个子文件夹而非整个仓库,GitHub 官方界面不直接提供“下载子文件夹”的按钮。以下是几种可行的单独下载目录的方法:
一、使用 DownGit 工具
DownGit 是一个第三方网页工具,可通过输入 GitHub 文件夹的原始 URL 生成 ZIP 下载链接,无需克隆整个仓库。
1、在 GitHub 上导航至目标子文件夹页面,确保 URL 形如 https://github.com/用户名/仓库名/tree/分支名/路径/到/子文件夹。
2、将 URL 中的 tree/分支名 替换为 raw/分支名,得到原始路径 URL(例如:https://github.com/用户名/仓库名/raw/分支名/路径/到/子文件夹)。
3、访问 https://minhaskamal.github.io/DownGit/,将修改后的 raw URL 粘贴到输入框中,点击 “Download” 按钮。
4、浏览器将自动开始下载该子文件夹的 ZIP 压缩包。
二、使用 svn export 命令
GitHub 仓库支持 Subversion(SVN)协议访问,可利用 svn export 直接拉取指定路径,跳过版本控制元数据。
1、确认本地已安装 SVN 命令行工具,可在终端执行 svn --version 验证。
2、构造 SVN 可访问的 URL:将 GitHub 页面 URL 中的 https://github.com 替换为 https://github.com/svn,并将 tree/分支名 替换为 trunk(若分支非 main/master,需对应调整)。
3、运行命令:svn export https://github.com/svn/用户名/仓库名/trunk/路径/到/子文件夹 ./本地文件夹名。
4、等待导出完成,目标子文件夹内容将出现在当前目录的指定文件夹中。
三、使用 GitHub CLI 的 gh repo download 子命令
GitHub CLI(gh)v2.23.0+ 版本引入了 repo download 功能,支持按路径筛选下载文件,适用于需要精确提取子目录的场景。
1、安装或升级 GitHub CLI 至最新版,执行 gh --version 确认版本 ≥ 2.23.0。
2、登录 GitHub 账户:gh auth login,选择 HTTPS 协议并完成认证。
3、执行下载命令:gh repo download 用户名/仓库名 --archive=zip --pattern="路径/到/子文件夹/**"(注意结尾通配符保留斜杠与星号)。
4、解压生成的 ZIP 文件,提取匹配路径的文件结构,手动保留所需子文件夹层级。
四、通过 GitHub Archive API 构造请求
GitHub 提供 archive 接口,可生成任意树状快照的 ZIP,配合 Git Tree SHA 或分支名 + 子路径可实现定向打包。
1、访问仓库的 GitHub API 树查询地址:https://api.github.com/repos/用户名/仓库名/git/trees/分支名?recursive=1。
2、在返回的 JSON 中查找目标子文件夹路径对应的 path 字段及类型为 tree 的条目,记录其 sha 值。
3、构造 archive 下载 URL:https://api.github.com/repos/用户名/仓库名/tarball/SHA值(或使用分支名代替 SHA)。
4、用 curl 或 wget 加上 Accept: application/vnd.github+json 和认证头发起请求,重定向后保存 TAR 包,再解压并进入对应子路径提取内容。










