【问题标题】:How to download a folder from github?如何从 github 下载文件夹?
【发布时间】:2016-01-09 01:46:16
【问题描述】:

我希望从此链接下载 mysite 文件夹: https://github.com/username/repository/master/

【问题讨论】:

标签: git github ubuntu-14.04


【解决方案1】:

您可以 从 github 下载文件/文件夹

只需使用:svn export <repo>/trunk/<folder>

例如:svn export https://github.com/lodash/lodash/trunk/docs

注意:您可以先在终端使用svn ls <repo>/trunk/folder列出文件夹的内容

(是的,这里是svn。显然在2016年你仍然需要svn来简单地下载一些github文件)

【讨论】:

  • 我不得不将<repo>/branches/<branch_name>/<folder> 用于非master 分支,但在其他方面工作完美。
  • <repo>/tags/<tag_name>/<folder> 似乎也有效
【解决方案2】:

您可以使用Github Contents API 获取存档链接,使用tar 检索指定文件夹。

命令行:

curl https://codeload.github.com/[所有者]/[repo]/tar.gz/master | \ tar -xz --strip=2 [repo]-master/[folder_path]


例如,
如果你想从zeit/next.js下载examples/with-apollo/文件夹,你可以输入:

curl https://codeload.github.com/zeit/next.js/tar.gz/master | \
  tar -xz --strip=2 next.js-master/examples/with-apollo

【讨论】:

  • 不错! WGET 和常规 github 存档 url 也是可选的:wget -O - https://github.com/zeit/next.js/archive/master.tar.gz | tar -xz --strip=2 "next.js-master/examples/with-apollo"
  • zip 也可以。 wget -c https://github.com/user/project/archive/master.zip
  • 这个选项是垃圾。如果你只有什么图像 - 它首先下载整个回购然后修剪它。减少手动单独下载 15 张图片的痛苦!
【解决方案3】:

使用GitZip online tool。它允许将 github 存储库的子目录下载为 zip 文件。无需 git 命令!

【讨论】:

  • 完美解决方案
  • 为什么它需要对我所有的公共存储库进行写访问?这不是安全风险吗?
  • @JaredThirsk,但事实并非如此。你能告诉我们你的情况是什么时候发生的吗?
  • @gdrt 当我单击 Get Token: Normal 时,Github 会询问:“此应用程序将能够读取和写入所有公共存储库数据。这包括以下内容:- 代码,...”跨度>
  • 很难找到如此简单的解决方案来解决您想做的事情。这真的帮助了我。谢谢!
【解决方案4】:

有一个按钮Download ZIP。如果您想进行稀疏结帐,该网站上有许多解决方案。例如here.

【讨论】:

  • 以 zip 格式下载所有内容...然后解压缩,删除不需要的内容,然后重新压缩并将其 scp 到您想要的位置...
  • 或者只需下载整个存储库并浏览您想要的文件,而无需安装或配置任何工具。 (反正你的评论是重复的)
  • 这不应该是公认的答案。具体来说,“您不能只下载文件夹或文件”是错误的。请参阅下面的各种正确解决方案。
  • 感谢您的建议,我会更新答案。我不认为下面的解决方案是正确的,它们只是工作。您可以使用git 从存储库下载子文件夹。无论如何,存储库托管站点 github.com 没有提供不使用任何外部工具的方法。
【解决方案5】:

如何从 GitHub 存储库下载特定文件夹

这里根据post的正确解决方案:

  • 创建目录

     mkdir github-project-name 
     cd github-project-name
    
  • 设置一个 git 仓库

     git init
     git remote add origin <URL-link of the repo>
    
  • 将您的 git-repo 配置为仅下载特定目录

     git config core.sparseCheckout true # enable this
    
  • 设置您喜欢下载的文件夹,例如你只想从https://github.com/project-tree/master/doc下载doc目录

     echo "/absolute/path/to/folder" > .git/info/sparse-checkout 
    

    例如如果你只想从你的主仓库https://github.com/project-tree/master/doc 下载 doc 目录,那么你的命令是echo "doc" &gt; .git/info/sparse-checkout。

  • 像往常一样下载你的仓库

     git pull origin master
    

【讨论】:

  • 最好的答案!但是,我认为“git remote add origin”中不应该有“-f”,因为“-f”意味着从服务器立即获取,应该避免这种情况,因为只需要“稀疏”路径!
  • 很棒的答案!
  • 就我而言,我可以从git pull origin 的详细说明中看到这样做会下载整个存储库;但仅保留.git/info/sparse-checkout 中指定的文件夹。并使用https://downgit.github.io/ 为我做到了。
【解决方案6】:

依赖关系:cURL 和 7-Zip。

curl {url for downloading zip file} | 7z a -tzip {project name}-{branch name}/{folder path in that branch}

例如:

curl https://github.com/hnvn/flutter_shimmer/archive/master.zip | 7z a -tzip flutter_shimmer-master/examples

【讨论】:

    【解决方案7】:

    如果你想自动化这些步骤,这里的建议只会在一定程度上起作用。

    我遇到了这个名为fetch 的工具,它对我来说效果很好。您甚至可以指定版本。因此,需要一个步骤来下载并将其设置为可执行文件,然后获取所需的文件夹:

    curl -sSLfo ./fetch \
    https://github.com/gruntwork-io/fetch/releases/download/v0.3.12/fetch_linux_amd64
    
    chmod +x ./fetch
    
    ./fetch --repo="https://github.com/foo/bar" --tag="${VERSION}" --source-path="/baz" /tmp/baz
    

    【讨论】:

    • 我的票投给了 matrik。这个 fetch 实用程序正是我想要的:github.com//gruntwork-io/fetch。它是一个命令行工具,不仅适合 OP 的用例,还提供了许多其他有用的功能和开关,用于准确指定您的目标。
    【解决方案8】:

    您必须使用将使用本地 github 程序的“克隆到桌面”按钮或“下载为 zip”来下载整个项目。

    然后在下载的项目中搜索那个文件夹。

    【讨论】:

      【解决方案9】:

      还有一个不错的浏览器扩展,允许 dl 文件或文件夹

      【讨论】:

        【解决方案10】:

        您可以在克隆或下载选项(Git URL 或下载 Zip)下下载完整文件夹

        1. 有一个下载压缩包的按钮

        2. 通过使用命令,您可以在您的机器上下载完整的文件夹,但为此您需要在您的机器上安装 git。你可以在下面找到 Git url

          git 克隆https://github.com/url

        【讨论】:

          【解决方案11】:

          您也可以只克隆 repo,克隆完成后,只需选择您想要的文件夹或恶意文件。克隆:

          git clone https://github.com/somegithubuser/somgithubrepo.git
          

          然后转到克隆的 DIR 并找到您要复制的文件或 DIR。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-04-16
            • 2022-01-09
            • 2020-09-30
            • 1970-01-01
            • 2017-03-06
            • 1970-01-01
            相关资源
            最近更新 更多