我想你们中的大多数开发人员都使用任何VCS ,并且希望你们中的一些人使用 Git。您是否有技巧或窍门,如何获得存储库中单个文件的下载 URL?
我不希望显示原始文件的 URL。如果是二进制文件,那是没有用的。
http://support.github.com/discussions/feature-requests/41-download-single-file
甚至可以将 GitHub 用作 “下载服务器” 吗?
如果我们决定切换到 Google Code,此处是否提供了上述功能?
还是为开源项目提供免费的托管和 VCS?
Git 不支持下载存储库的某些部分。您必须全部下载。但是您应该能够使用 GitHub 做到这一点。
当您查看文件时,它具有指向 “原始” 版本的链接。 URL的结构如下
https://raw.githubusercontent.com/user/repository/branch/filename
通过填写 URL 中的空格,您可以使用Wget或cURL (使用-L
选项,请参见下文)或下载单个文件的任何方法。同样,这样做不会获得 Git 使用的任何出色的版本控制功能。
更新:我注意到您提到这不适用于二进制文件。您可能不应该在 Git 存储库中使用二进制文件,但是 GitHub 为每个存储库提供了一个下载部分,您可以使用该部分来上传文件。如果需要多个二进制文件,则可以使用. zip 文件。下载上载文件的 URL 为:
https://github.com/downloads/user/repository/filename
请注意,上面给出的 URL(来自github.com
上的链接)将重定向到raw.githubusercontent.com
。您不应直接使用此 HTTP 302 重定向给出的 URL,因为根据RFC 2616 :“由于重定向有时可能会更改,因此客户端应继续将 Request-URI 用于将来的请求。”
Raw
按钮。您可以使用 V3 API 来获取这样的原始文件(您需要 OAuth 令牌):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/*owner*/*repo*/contents/*path*
所有这些必须合而为一。 -O
选项将文件保存在当前目录中。您可以使用-o filename
指定其他文件名。
要获取 OAuth 令牌,请按照此处的说明进行操作: https://help.github.com/articles/creating-an-access-token-for-command-line-use
我也将其写成要点: https://gist.github.com/madrobby/9476733