如何使用wget从Github下载包含多个文件的文件夹?
如何使用wget从Github下载包含多个文件的文件夹?
如何仅从托管在GitHub上的远程Git存储库中下载特定的文件夹或目录?
假设示例GitHub存储库位于此处:
git@github.com:foobar/Test.git
它的目录结构如下:
Test/ ├── foo/ │ ├── a.py │ └── b.py └── bar/ ├── c.py └── d.py
我只想下载 foo </ strong>文件夹,而不克隆整个Test项目。
前往DownGit> 输入您的 URL > 下载!
您可以从DownGit-直接下载,也可以为任何 GitHub 公共目录或文件创建下载链接DOWNLOAD LINK。
您还可以为下载文件配置属性-详细使用。
声明: 我遇到与提问者相同的问题,找不到任何简单的解决方案。所以,我首先为自己开发了这个工具,然后向所有人开放:)
2021年4月更新:社区创建了一些工具,可以为您完成这个操作:
- 下载目录 (由fregante贡献)
- 它也已经被整合到优秀的Refined Github chrome扩展程序中,作为Github网站UI中的一个按钮。
- GitZip (由Kino贡献 - 参见他在这里的回答)
- DownGit (由Minhas Kamal贡献 - 参见他在这里的回答)
注意:如果您试图下载大量的文件,可能需要向这些工具提供令牌以避免限制。
原始(手动)方法:git本身不支持检出单个目录,但是Github可以通过SVN实现这一操作。如果您使用子版本控制工具(subversion)检出代码,Github将在后台将仓库从git转换为SVN,然后提供所需的目录。
以下是如何使用此功能下载特定文件夹的步骤。我将使用流行的JavaScript库 lodash
作为示例。
-
导航到你要下载的文件夹。让我们从
master
分支中下载/test
。 -
修改子版本URL。用
trunk
替换tree/master
。https://github.com/lodash/lodash/tree/master/test
➜https://github.com/lodash/lodash/trunk/test
-
下载文件夹。进入命令行并使用 SVN 获取文件夹。
svn checkout https://github.com/lodash/lodash/trunk/test
你可能不会立即看到任何活动,因为 Github 需要花费长达 30 秒的时间来转换大型存储库,所以请耐心等待。
完整的 URL 格式说明:
- 如果你想要
master
分支,使用trunk
。因此,完整路径为trunk/foldername
- 如果你想要
foo
分支,使用branches/foo
。完整路径看起来像branches/foo/foldername
- 专业提示:在下载之前,你可以使用
svn ls
查看可用的标记和分支
就是这样!Github 还支持更多的 Subversion 功能,包括支持提交和推送更改。