协慌网

登录 贡献 社区

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

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

举个例子说 GitHub repo 住在这里:

git@github.com: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作为示例。

  1. 获取 repo URL 。首先,将 Github 仓库的 URL 复制到剪贴板。 github repo URL示例

  2. 修改 subversion 的 URL 。我想从master分支下载/docs文件夹,所以我将追加trunk/docs 。完整的 URL 现在是https://github.com/lodash/lodash/trunk/docs 。请参阅下面的注释,以便更深入地解释我们必须使用此 URL 格式的原因。

  3. 下载文件夹 。转到命令行并使用 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 功能 ,包括支持提交和推送更改。

此功能有两个选项:

选项 1:浏览器扩展

Chrome 扩展程序Firefox 插件

用法:

  1. 在任何 GitHub repos 页面中。
  2. 只需双击您需要的项目即可。
  3. 单击右下角的下载按钮。
  4. 查看进度仪表板并等待浏览器触发器下载。
  5. 获取 ZIP 文件。

获取令牌:

  1. 单击浏览器上的 GitZip Extension 图标。
  2. 点击 “Get Token” 旁边的 “Normal” 或 “Private” 链接。
  3. 在 Github auth 页面上授权 GitZip 权限。
  4. 回到开头的回购页面。
  5. 继续使用。

选项 2:Github gh-page

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 > 输入您的 URL > 下载!

现在,您可以直接下载或为DownGit 中的任何 GitHub 公共目录或文件( 特别大的文件 )创建DOWNLOAD LINK !这是一个简单的演示 -


DownGit


您还可以配置下载文件的属性详细用法