从GitHub下载单个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从GitHub下载单个文件相关的知识,希望对你有一定的参考价值。

我猜大多数人,开发人员,使用任何VCS,我希望你们中的一些人使用Git。您是否有任何提示或技巧如何获取存储库中单个文件的下载URL?

我不想要显示原始文件的URL;在二进制文件的情况下它是无用的。

http://support.github.com/discussions/feature-requests/41-download-single-file

甚至可以将GitHub用作“下载服务器”吗?

如果我们决定切换到Google代码,那么此处提供的功能是什么?

或者是否有开源项目的免费托管和VCS?

答案

Git不支持下载存储库的部分内容。你必须下载所有这些。但你应该能够用GitHub做到这一点。

当您查看文件时,它具有指向“原始”版本的链接。 URL的构造是这样的

https://raw.githubusercontent.com/user/repository/branch/filename

通过填写URL中的空白,您可以使用WgetcURL(使用-L选项,见下文)或其他任何内容来下载单个文件。同样,你不会通过这样做获得Git使用的任何漂亮的版本控制功能。

更新:我注意到你提到这对二进制文件不起作用。您可能不应该在Git存储库中使用二进制文件,但GitHub有一个可用于上载文件的每个存储库的下载部分。如果需要多个二进制文件,可以使用.zip文件。下载上传文件的URL是:

https://github.com/downloads/user/repository/filename

请注意,上面给出的来自github.com上的链接的URL将重定向到raw.githubusercontent.com。您不应该直接使用此HTTP 302重定向提供的URL,因为,根据RFC 2616:“由于重定向有时可能会被更改,因此客户端应该继续使用Request-URI进行将来的请求。”

另一答案

您应该使用文件的raw URL。

例如,下载AFNetworking的自述文件:

curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md 

由于它是一个公共回购,您不需要任何凭据。请注意网址的种类:raw.githubusercontent.com/path/to/file

另一答案

这种方法适用于Windows,因为我从未使用过MAC,因此我不知道MAC中的备用键是什么,我将在下面提到。

我们来谈谈CSV文件。如果要下载CSV文件:

  1. 转到要下载的特定数据集,然后单击它。
  2. 您将在数据集的右上角看到“原始”按钮。
  3. 按“Alt”,然后左键单击“原始”按钮。
  4. 整个CSV将在您的系统中下载。

请记住,您必须同时按Alt并单击左键。只需单击“原始”按钮,即可在浏览器中打开CSV。

我希望有所帮助。

另一答案

有一个名为Enhanced Github的镀铬扩展

它将直接在每个文件的右侧添加一个下载按钮。

enter image description here

另一答案

这肯定会奏效。至少在Chrome中。右键单击“Raw”图标 - > Save Link As。

另一答案

您应该使用GitHub的Releases功能将可下载数据(例如已编译的二进制文件)与用于生成该数据的源代码的标记版本相关联,而不是链接到repo中的特定文件。

https://github.com/blog/1547-release-your-software

我们很高兴地宣布Releases,一个向最终用户发送软件的工作流程。版本是具有更改日志和二进制资产的一流对象,它们提供了超出Git工件的完整项目历史记录。

发行版附带发行说明和下载软件或源代码的链接。

遵循许多Git项目的约定,版本与Git标签相关联。您可以使用现有标记,也可以在发布标记时创建标记。

enter image description here

另一答案
  1. 您链接的页面回答第一个问题。
  2. GitHub还有一个下载工具,用于发布版本。
  3. Google Code根本没有Git
  4. GitHub,谷歌代码和SourceForge,刚刚开始,是免费托管。 SourceForge可能仍然会做CVS
另一答案

我最近发现了一个名为gitzip的服务,它也是开源的:

网站 - http://kinolien.github.io/gitzip/

昼夜派对

访问上面的站点,输入repo或目录URL,您可以将单个文件或整个目录下载为zip文件。

另一答案

我认为新的https://github.com/KinoLien/gitzip结构是url例如:

raw.giturl

git file

另一答案

如果您碰巧使用curl和firefox ......您可以使用raw附加组件生成卷曲调用,包括所有身份验证机制(也称为cookie)。

所以右键单击cliget按钮cliget - >“copy url for link”然后将其粘贴到shell中。即使您必须登录才能看到它,您将获得您的文件。

另一答案

现在可以使用此Google Chrome扩展程序下载存储库中的任何文件或任何特定文件夹:

GitZip for github:link:raw

用法:

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

https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

enter image description here

另一答案
  1. 转到要下载的文件。
  2. 单击它以查看GitHub UI中的内容。
  3. 在右上角,右键单击Raw按钮。
  4. 另存为...
另一答案

要从Github存储库下载文件,请使用'curl'命令以及指向原始文件的链接。

enter image description here

添加--output选项,后跟新文件名,将原始文件下载到新创建的文件中。

另一答案
  1. 在“Clone in Desktop”下方的右侧,它显示“Download Zip file”
  2. 下载Zip文件
  3. 提取文件
另一答案

对于使用GitHub Enterprise的用户,您需要在以下方案中构建URL

curl https://raw.githubusercontent.com/user/repo/filename --output filename

详细信息可以在这里找到

Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}

另一答案

或试试这个

http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
另一答案

我使用以下格式,我觉得告知路径非常重要。

const https = require('https');
const fs = require('fs');
const DOMAIN = 'raw.githubusercontent.com';

function writeFile(data, fileName) {
  fs.appendFile(fileName, data.toString(), err => {
    if (err) {
      console.log('error in writing file', err);
    }
  });
}

function EOF(data) {
  console.log('EOF');
}

function getFileName(pathToFile) {
  var result = pathToFile.split('/');
  var splitLength = result.length;
  return result[splitLength - 1];
}
function getFile(branchName, username, repoName, ...pathToFile) {
  pathToFile.forEach(item => {
    const path = `/${username}/${repoName}/${branchName}/${item}`;
    const URL = `${DOMAIN}${path}`;
    const options = {
      hostname: DOMAIN,
      path: path
    };
    var fileName = getFileName(item);

    https
      .get(options, function(res) {
        console.log(res.statusCode);
        /* if file not found */
        if (res.statusCode === 404) {
          console.log('FILE NOT FOUND');
        } else {
          /* if file found */
          res.on('data', d

以上是关于从GitHub下载单个文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Octokit (c#, .net) 从大型 github 企业存储库中高效下载单个文件

从GitHub repo DownGit下载单个文件夹或目录

markdown 从私有GitHub仓库下载单个文件。您需要一个访问令牌,如本GitHub帮助文章中所述:https://help.github

第18月第25天 github下载单个文件夹

小程序各种功能代码片段整理---持续更新

如何从 GitHub 下载单个提交差异?