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

2024-01-19

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

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

[email protected] /cdn-cgi/l/email-protection:foobar/Test.git

其目录结构:

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

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


2021 年 4 月更新:社区创建了一些工具可以为您执行此操作:

  • Download Directory https://download-directory.github.io/ (Credits to fregante https://stackoverflow.com/users/288906/fregante)
    • 也曾被融合的 https://github.com/sindresorhus/refined-github/pull/951进入优秀的精致的Github https://github.com/sindresorhus/refined-githubchrome 扩展作为 Github Web UI 中的按钮。
  • GitZip http://kinolien.github.io/gitzip(致谢Kino https://stackoverflow.com/users/2238770/kino- 看他的回答here https://stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo/33753575#33753575)
  • DownGit https://minhaskamal.github.io/DownGit(致谢米尼亚斯·卡迈勒 https://stackoverflow.com/users/4684058/minhas-kamal?tab=profile- 看他的回答here https://stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo/38879691#38879691)

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


原始(手动)方法:不支持检出单个目录git原生的,但 Github 可以通过 SVN 来做到这一点。如果您使用 subversion 签出代码,Github 本质上会将存储库从 git 转换为后端的 subversion,然后提供请求的目录。

以下是如何使用此功能下载特定文件夹。我将使用流行的 javascript 库lodash举个例子。

  1. Navigate to the folder you want to download. Let's download /test from master branch. github repo URL example

  2. 修改URL进行颠覆。代替tree/master with trunk.

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

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

  3. 下载文件夹。转到命令行并使用 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如果您愿意,可以在下载之前查看可用的标签和分支

就这样!吉图布支持更多颠覆功能 https://help.github.com/articles/support-for-subversion-clients/此外,还包括对提交和推动变更的支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 GitHub 存储库下载单个文件夹或目录 的相关文章

随机推荐