如何从 GitHub 上托管的远程 Git 仓库中仅下载特定文件夹或目录?
举个例子说 GitHub repo 住在这里:
[email protected]:foobar/Test.git
其目录结构:
Test/
foo/
a.py
b.py
bar/
c.py
d.py
我只想下载foo文件夹而不是克隆整个 Test 项目。
2016 年 9 月更新:社区创建了一些可以为您执行此操作的工具:
Git 不支持这个,但 Github 通过 SVN 做。如果你用 subversion 结账你的代码,Github 将在后端基本上将 repo 从 git 转换为 subversion,然后提供所请求的目录。
以下是使用此功能下载特定文件夹的方法。我将使用流行的 javascript 库lodash
作为示例。
修改 subversion 的 URL 。我想从master
分支下载/docs
文件夹,所以我将追加trunk/docs
。完整的 URL 现在是https://github.com/lodash/lodash/trunk/docs
。请参阅下面的注释,以便更深入地解释我们必须使用此 URL 格式的原因。
下载文件夹 。转到命令行并使用 SVN 获取文件夹。 svn checkout https://github.com/lodash/lodash/trunk/docs
您可能没有立即看到任何活动,因为 Github 需要 30 秒才能转换更大的存储库,所以请耐心等待。
完整的 URL 格式说明:
- 如果您对
master
分支感兴趣,请改用trunk
。所以完整的路径是trunk/foldername
- 如果你对
foo
branch 感兴趣,请改用branches/foo
。完整路径看起来像branches/foo/foldername
- Protip:如果您愿意,可以在下载之前使用
svn ls
查看可用的标签和分支
就这样! Github 也支持更多的 subversion 功能 ,包括支持提交和推送更改。
用法:
获取令牌:
http://kinolien.github.io/gitzip使用 GitHub API 和 JSZip,FileSaver.js 库。
步骤 1:将 github url 输入到右上角的字段。
步骤 2:按 Enter 键或直接单击下载下载 zip 或单击搜索查看子文件夹和文件列表。
步骤 3:单击 “下载 Zip 文件” 或 “获取文件” 按钮以获取文件。
在大多数情况下,它工作正常,但该文件夹包含超过 1,000 个文件,因为 Github Trees API 限制。 (指Github API#内容 )
它还可以支持私人 / 公共回购和升级速率限制,如果您有 GitHub 帐户并在此站点中使用 “获取令牌” 链接。
现在,您可以直接下载或为DownGit 中的任何 GitHub 公共目录或文件( 特别大的文件 )创建DOWNLOAD LINK !这是一个简单的演示 -
您还可以配置下载文件的属性详细用法 。