Download single files from GitHub
我猜大多数人,开发人员,使用任何VCS,我希望你们中的一些人使用Git。 您是否有任何提示或技巧如何获取存储库中单个文件的下载URL?
我不想要显示原始文件的URL; 在二进制文件的情况下它是无用的。
http://support.github.com/discussions/feature-requests/41-download-single-file
甚至可以将GitHub用作"下载服务器"吗?
如果我们决定切换到Google代码,那么此处提供的功能是什么?
或者是否有开源项目的免费托管和VCS?
Git不支持下载存储库的部分内容。你必须下载所有这些。但你应该能够用GitHub做到这一点。
当您查看文件时,它具有指向"原始"版本的链接。 URL的构造如下
1 | https://raw.githubusercontent.com/user/repository/branch/filename |
通过填写URL中的空白,您可以使用Wget或cURL(使用
更新:我注意到你提到这对二进制文件不起作用。您可能不应该在Git存储库中使用二进制文件,但GitHub有一个可用于上载文件的每个存储库的下载部分。如果需要多个二进制文件,可以使用.zip文件。
下载上传文件的URL是:
1 | https://github.com/downloads/user/repository/filename |
请注意,上面给出的URL来自
您可以使用V3 API来获取这样的原始文件(您需要一个OAuth令牌):
<5233>
所有这一切都必须在一条线上。
要获取OAuth令牌,请按照此处的说明操作:
https://help.github.com/articles/creating-an-access-token-for-command-line-use
我也把它写成了一个要点:
https://gist.github.com/madrobby/9476733
根据这个要点,你可以使用wget或cURL:
内容。
在命令行中,运行以下任一项:
-
wget --no-check-certificate --content-disposition https://URL-from-step3/ -
curl -LJO https://URL-from-step3/
多一个:
在RHEL7.6中,运行以下命令:
-
wget https://URL-from-step3/ --output-document=FILE_NAME
GitHub Mate可轻松下载单个文件,只需点击图标即可下载,目前它只适用于Chrome。
现在可以在GitHub中找到任何文件。您需要翻译raw.github.com的文件。例如,如果您的文件位于您的存储库中:
1 | https://github.com/<username>/<repo>/some_directory/file.rb |
使用wget,您可以从以下位置获取原始文件:
1 | https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb |
Rails Composer就是一个很好的例子。
您可以这样使用
<5233>
跟进thomasfuchs的说法,但对于GitHub Enterprise用户来说,这是你可以使用的。
这里还有API文档https://developer.github.com/v3/repos/contents
如果您想使用
1 | wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true |
有关详细信息,请访问此网站
您应该使用文件的
例如,下载AFNetworking的自述文件:
1 | curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md |
由于它是一个公共回购,您不需要任何凭据。
请注意网址的种类:
有一个名为Enhanced Github的chrome扩展
它将直接在每个文件的右侧添加一个下载按钮。
这种方法适用于Windows,因为我从未使用过MAC,因此我不知道MAC中的备用键是什么,我将在下面提到。
我们来谈谈CSV文件。如果要下载CSV文件:
记住,你必须按Alt并同时左键单击。只需单击"原始"按钮,即可在浏览器中打开CSV。
我希望有所帮助。
您应该使用GitHub的Releases功能将可下载数据(例如已编译的二进制文件)与用于生成该数据的源代码的标记版本相关联,而不是链接到repo中的特定文件。
https://github.com/blog/1547-release-your-software
We're excited to announce Releases, a workflow for shipping software to end users. Releases are first-class objects with changelogs and binary assets that present a full project history beyond Git artifacts.
Releases are accompanied by release notes and links to download the software or source code.
Following the conventions of many Git projects, releases are tied to Git tags. You can use an existing tag, or let releases create the tag when it's published.
这肯定会奏效。至少在Chrome中。右键单击"Raw"图标 - > Save Link As。
我最近发现了一个名为
网站 - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
访问上述站点,输入repo或目录URL,您可以将单个文件或整个目录下载为zip文件。
您链接的页面回答第一个问题。
GitHub还有一个下载工具,用于发布版本。
Google Code根本没有Git。
GitHub,谷歌代码和SourceForge,刚刚开始,是免费托管。 SourceForge可能仍然会做CVS。
要从Github存储库下载文件,请使用'curl'命令以及指向原始文件的链接。
1 | curl https://raw.githubusercontent.com/user/repo/filename --output filename |
添加--output选项,后跟新文件名,将原始文件下载到新创建的文件中。
如果您碰巧使用curl和firefox ......您可以使用cliget附加组件生成卷曲调用,包括所有身份验证机制(也称为cookie)。
因此,右键单击
现在可以使用此Google Chrome扩展程序下载存储库中的任何文件或任何特定文件夹:
GitZip for github:
链接:https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
用法:
我认为新的
git文件
生的
对于使用GitHub Enterprise的用户,您需要在以下方案中构建URL
详细信息可以在这里找到
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
或试试这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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'); |
我使用以下格式,我觉得告知路径非常重要。
1 | https://github.com/user/repository/raw/branch/filename |
^^^以上在我的脑海里并不是很完整
1 | https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true |
有人说raw.github.com或raw而不是blob,但第二行对我有用,我希望能帮助别人......
2¢
您可以尝试github-files-fetcher,它是一个命令行工具,可以从GitHub仓库下载单个文件夹或文件。
想一个真实的场景:您正在访问以下网页页面并想单独下载
https://github.com/reduxjs/redux/tree/master/examples
sorry for not being allowed to post images.
使用
这对我来说现在很有用......
在单独的选项卡中打开原始文件。
将所有内容复制到记事本中的新文件中。
将文件保存在原来的扩展名中
...刚刚为我的DL工作.php文件。