一尘不染

从 GitHub 存储库下载单个文件夹或目录

javascript

如何从托管在 GitHub 上的远程 Git 存储库中仅下载特定文件夹或目录?

假设 GitHub 存储库的示例位于此处:

git@github.com:foobar/Test.git

它的目录结构:

Test/
├── foo/ 
│   ├── a.py
│   └── b.py   
└── bar/
    ├── c.py
    └── d.py

我只想下载foo文件夹,而不是克隆整个 Test 项目。


阅读 130

收藏
2022-02-22

共1个答案

一尘不染

注意:如果您尝试下载大量文件,您可能需要向这些工具提供令牌以避免速率限制。


原始(手动)方法:本机不支持检出单个目录git,但 Github 可以通过 SVN 执行此操作。如果你用 subversion 签出你的代码,Github 基本上会将 repo 从 git 转换为后端的 subversion,然后提供请求的目录。

以下是使用此功能下载特定文件夹的方法。我将使用流行的 javascript 库lodash作为示例。

  1. 导航到您要下载的文件夹。让我们/testmaster分支下载。 github 仓库 URL 示例

  2. 修改 subversion 的 URL。替换tree/mastertrunk

https://github.com/lodash/lodash/tree/master/test

https://github.com/lodash/lodash/trunk/test

  1. 下载文件夹。转到命令行并使用 SVN 获取文件夹。
svn checkout https://github.com/lodash/lodash/trunk/test

您可能不会立即看到任何活动,因为 Github 最多需要 30 秒来转换更大的存储库,所以请耐心等待。

完整的 URL 格式说明:

  • 如果您对master分支感兴趣,请trunk改用。所以完整的路径是trunk/foldername
  • 如果您对foo分支感兴趣,请branches/foo改用。完整路径看起来像branches/foo/foldername
  • Protip:svn ls如果您愿意,可以在下载前查看可用的标签和分支

就这样!Github还支持更多的颠覆功能,包括对提交和推送更改的支持。

2022-02-22