从GitHub repo下载单个文件有哪些技巧?
我不想要显示原始文件的URL;对于二进制文件,什么都没有。
http://support.github.com/discussions/feature-requests/41-download-single-file
是否有可能将GitHub用作“下载服务器”?
如果我们决定切换到GoogleCode,是否提供了上述功能?
或者开源项目是否有免费托管和VCS?
从GitHub repo下载单个文件有哪些技巧?
我不想要显示原始文件的URL;对于二进制文件,什么都没有。
http://support.github.com/discussions/feature-requests/41-download-single-file
是否有可能将GitHub用作“下载服务器”?
如果我们决定切换到GoogleCode,是否提供了上述功能?
或者开源项目是否有免费托管和VCS?
当前回答
如果你碰巧用卷发和萤火虫。。。您可以使用cliget插件,它生成一个curl调用,包括所有身份验证机制(也称cookie)。
因此,右键单击原始按钮cliget->“复制链接的url”,然后将其粘贴到外壳中。即使你必须登录才能看到文件,你也会得到它。
其他回答
对于使用GitHub Enterprise的用户,您需要按照以下方案构造URL
调用WebRequesthttp://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt-标头@{“Authorization”=“token 8d795936d2c1b2806587719b9b6456bd16549ad8”}
详细信息可在此处找到
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
2019年总结
有多种方法可以处理此问题,具体取决于文件的大小、是否需要下载除文件外的文件夹,以及是否计划手动或以编程方式执行此操作。
下面总结了六个选项。对于那些喜欢更实际的解释的人,我制作了一个YouTube视频:从GitHub下载个人文件和文件夹。
此外,对于那些需要从GitHub下载单个文件夹/目录(而不是文件)的人,我在StackOverflow上发布了类似的答案。
1.GitHub用户界面
大多数图像上都有一个下载按钮。存储库主页上有一个下载按钮。当然,这将下载整个repo,之后您需要解压缩下载文件,然后手动拖出所需的特定文件。
2.浏览器上下文菜单
转到GitHub上的文件,右键单击“Raw”按钮打开浏览器的上下文菜单。从那里,如果您使用的是谷歌Chrome,请选择“将链接另存为…”。其他浏览器将具有类似的UI,但选择说明可能有所不同。例如,它将在Safari上显示为“下载链接文件”和“下载链接的文件为”。
3.第三方工具
有多种浏览器扩展和web应用可以处理这一问题,DownGit就是其中之一。只需将GitHub URL粘贴到文件中,然后按“下载”按钮。请注意,链接应该是GitHub.com托管的存储库视图,而不是直接文件链接。文件链接示例:https://github.com/babel/babel-eslint/blob/master/lib/parse.js.
4.子版本
GitHub不支持git存档(允许我们下载特定文件的git功能)。然而,GitHub支持多种Subversion功能,我们可以使用其中一种功能。Subversion是一种版本控制系统(git的替代品)。您需要安装Subversion。获取要下载的文件的GitHub URL。不过,您需要修改此URL。您需要指向存储库的链接,后跟单词“trunk”,并以嵌套文件的路径结尾。换句话说,使用我上面提到的相同文件链接,我们将用“trunk”替换“blob/master”。最后,打开一个终端,导航到要下载内容的目录,输入以下命令(用您构建的URL替换URL):svn exporthttps://github.com/babel/babel-eslint/trunk/lib/parse.js,然后按enter键。
5.cURL
您需要安装cURL。转到GitHub.com上的文件,左键单击“Raw”按钮进入直接文件链接,复制此URL,打开终端,导航到要下载内容的目录,键入以下命令,将文件名替换为您想命名的名称,并将URL替换为您刚才复制的名称:curl-o parse.jshttps://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.js.
6.GitHub API
这实际上是DownGit在幕后使用的。使用GitHub的REST API,向内容端点发出GET请求。端点的构造如下:https://api.github.com/repos/:owner/:repo/contents/:path.替换占位符后,示例端点为:https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.js.这将为您提供该文件的JSON数据,包括下载URL(与我们在上面的cURL示例中使用的下载URL相同)。不过,这种方法对于单个文件来说并不那么有用(您更可能使用它来下载特定的文件夹,正如我在上面链接的答案中所详述的那样)。
您可以复制GitHub文件的内容,然后将其粘贴到文件中。简单!
我认为新的url结构是raw.giturl,例如:
git文件
raw
可以这样使用curl:
卷曲-OLhttps://raw.githubusercontent.com/<username>/<repo名称>/<branch名称>/path/to/file
O表示curl下载内容L表示卷曲遵循重定向