Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从GitHub下载单个文件_Git_Github_Url_Download_Version Control - Fatal编程技术网

从GitHub下载单个文件

从GitHub下载单个文件,git,github,url,download,version-control,Git,Github,Url,Download,Version Control,我想你们中的大多数开发人员都使用any,我希望你们中的一些人使用Git。您是否有任何技巧或诀窍来获取存储库中单个文件的下载URL 我不想要显示原始文件的URL;在二进制文件的情况下,它是免费的 甚至可以将GitHub用作“下载服务器”吗 如果我们决定切换到谷歌代码,这里是否提供了提到的功能 或者开源项目是否有免费的托管和VCS 您链接到的页面回答了第一个问题 GitHub还有一个下载工具,可以下载发布版之类的内容 根本没有 GitHub、Google代码和免费托管。SourceForge可能仍

我想你们中的大多数开发人员都使用any,我希望你们中的一些人使用Git。您是否有任何技巧或诀窍来获取存储库中单个文件的下载URL

我不想要显示原始文件的URL;在二进制文件的情况下,它是免费的

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

如果我们决定切换到谷歌代码,这里是否提供了提到的功能

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

  • 您链接到的页面回答了第一个问题

  • GitHub还有一个下载工具,可以下载发布版之类的内容

  • 根本没有

  • GitHub、Google代码和免费托管。SourceForge可能仍然可以


  • Git不支持下载存储库的部分内容。你必须下载所有内容。但是,您应该能够使用GitHub实现这一点

    当您查看一个文件时,它有一个指向“原始”版本的链接。这座桥是这样建造的

    https://raw.githubusercontent.com/user/repository/branch/filename
    
    通过填写URL中的空格,您可以使用或(使用
    -L
    选项,请参见下文)或其他任何方式下载单个文件。同样,这样做也不会获得Git使用的任何好的版本控制特性

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

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

  • 转到要下载的文件
  • 单击它以查看GitHub UI中的内容
  • 在右上角,右键单击
    Raw
    按钮
  • 另存为

  • 我认为新的
    url
    结构是
    raw.giturl
    ,例如:


    现在,在GitHub中,任何文件都可以这样做。您需要为raw.github.com翻译文件。例如,如果您的文件位于存储库中:

    https://github.com/<username>/<repo>/some_directory/file.rb
    
    https://github.com///some_directory/file.rb
    
    使用wget,您可以从以下位置获取原始文件:

    https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb
    
    https://raw.github.com////some_directory/file.rb
    
    这是一个很好的例子。

    可以轻松下载单个文件,只需单击图标即可下载,目前仅在Chrome上可用


    您可以使用V3API获得如下原始文件(您需要OAuth令牌):

    curl-H'Authorization:tokeninsertaccesstokenhere'-H'Accept:application/vnd.github.v3.raw'-O-Lhttps://api.github.com/repos/*所有者*/*回购*/contents/*路径*

    所有这些都必须在一条线上完成。
    -O
    选项将文件保存在当前目录中。您可以使用
    -o filename
    指定不同的文件名

    要获取OAuth令牌,请按照以下说明操作:

    我也将此作为要点:

  • 在右边“桌面克隆”的下方写着“下载Zip文件”
  • 下载Zip文件
  • 提取文件

  • 如果你碰巧使用了curl和firefox。。。您可以使用生成包含所有身份验证机制(又称cookie)的curl调用的插件


    因此,右键单击
    raw
    按钮cliget->“复制链接的url”,然后将其粘贴到shell中。即使您必须登录才能查看文件,您也会收到文件。

    要跟进thomasfuchs所说的内容,但对于GitHub企业用户,以下是您可以使用的内容

    curl-H'Authorization:tokeninsertaccesstokenhere'-H'Accept:application/vnd.github.v3.raw'-O-Lhttps://your_domain/api/v3/repos/owner/repo/contents/path


    这里还有API文档

    这肯定会奏效。至少是铬的。右键单击“原始”图标->将链接另存为。

    以防您想使用
    wget
    github
    下载zip文件

    wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true
    

    有关更多详细信息,请参见此

    您只需使用文件的
    raw
    URL即可

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

    curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md 
    
    由于这是一种公开回购,您不需要任何凭证。
    请注意url的类型:
    raw.githubusercontent.com/path/to/file
    我最近发现了一个名为
    gitzip
    的服务,它也是开源的:

    地点-

    回购-

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

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

    我们很高兴地宣布发布,这是一个向最终用户发布软件的工作流程。发行版是具有变更日志和二进制资产的一级对象,它们提供了Git工件之外的完整项目历史

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

    遵循许多Git项目的约定,发布与Git标记绑定。可以使用现有标记,也可以在发布标记时让发布人员创建该标记


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

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

  • 去那部分
    curl https://raw.githubusercontent.com/user/repo/filename --output filename
    
    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', data => writeFile(data, fileName));
              res.on('end', data => EOF(data));
            }
          })
          .on('error', function(res) {
            console.log('error in reading URL');
          });
      });
    }
    getFile('master', 'bansalAyush', 'InstagramClone', '.babelrc', 'README.md');
    
    https://github.com/user/repository/raw/branch/filename
    
    https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true