从 GitHub 存储库下载单个文件有哪些技巧?
我不想要显示原始文件的 URL;在二进制文件的情况下,什么都没有。
http://support.github.com/discussions/feature-requests/41-download-single-file
甚至可以将 GitHub 用作“下载服务器”吗?
如果我们决定切换到谷歌代码,那里是否有提到的功能?
或者有没有免费的开源项目托管和VCS?
wget full_url_to_raw_file_on_github
。
转到您要下载的文件。单击它以查看 GitHub UI 中的内容。在右上角,右键单击 Raw 按钮。另存为...
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
请注意,上面给出的来自 github.com
链接的 URL 将重定向到 raw.githubusercontent.com
。您不应直接使用此 HTTP 302 重定向给出的 URL,因为根据 RFC 2616:“由于重定向有时可能会更改,客户端应该继续使用 Request-URI 来处理未来的请求。”
raw
)现在会自动重定向到您提到的格式(主机名 raw.github.com
)。如有疑问,请浏览 github.com 上的相关文件,然后单击“原始”按钮。
转到 DownGit - 输入您的 URL - 只需下载
无需安装任何东西或遵循复杂的说明;特别适合大型源文件。
https://cloud.githubusercontent.com/assets/5456665/17822364/940bded8-6678-11e6-9603-b84d75bccec1.gif
您可以将单个文件和目录下载为 zip,还可以创建下载链接。
免责声明:我是这个工具的作者。
根据this gist,您可以使用 wget 或 cURL:
单击 GitHub 存储库中的文件名。单击 Raw 以显示文件内容。在浏览器中复制 URL。在命令行中,运行: 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
wget
后跟我想要的 C 源文件的原始路径。在我的 Raspberry Pi 3 上使用 Raspbian 像冠军一样工作。
您可以使用 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 令牌,follow these instructions。
我也把它写成a gist。
您可以这样使用 curl
:
curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
表示 curl 下载内容
L
表示 curl 遵循重定向
这现在可以在 GitHub 中用于任何文件。您需要为 raw.github.com 翻译文件。例如,如果您的文件位于您的存储库中:
https://github.com/<username>/<repo>/some_directory/file.rb
使用 wget 您可以从以下位置获取原始文件:
https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb
Rails Composer 就是一个很好的例子。
GitHub Mate 让单个文件下载变得毫不费力,只需点击图标即可下载,目前仅适用于 Chrome。
https://lh4.googleusercontent.com/pmnJq0W-odK3qaoFydvC2a9QZcFvVsldrS51-BCJsNj4PL1a0N24RDN6eK1dLV7Mu5esuR54PQ=s640-h400-e365-rw
2019年总结
有多种方法可以处理此问题,具体取决于文件的大小、除了文件之外是否还需要下载文件夹,以及是否计划手动或以编程方式执行此操作。
下面总结了六个选项。对于那些喜欢更实际的解释的人,我制作了一个 YouTube 视频:Download Individual Files and Folders from GitHub。
此外,我还为需要从 GitHub 下载单个文件夹/目录(而不是文件)的用户发布了 similar answer on StackOverflow。
1. GitHub 用户界面
大多数图像上都有一个下载按钮。
存储库主页上有一个下载按钮。当然,这会下载整个 repo,之后您需要解压缩下载文件,然后手动拖出您需要的特定文件。
2. 浏览器上下文菜单
转到 GitHub 上的文件,右键单击“Raw”按钮以打开浏览器的上下文菜单。从那里,如果您使用的是 Google Chrome,请选择“将链接另存为...”。其他浏览器将具有类似的 UI,但选择说明可能会有所不同。例如,它将在 Safari 上列为“下载链接文件”和“将链接文件下载为”。
3. 第三方工具
有多种浏览器扩展程序和 Web 应用程序可以处理这个问题,DownGit 就是其中之一。只需将 GitHub URL 粘贴到文件中,然后按“下载”按钮。请注意,链接应该是 GitHub.com 托管的存储库视图,而不是直接文件链接。文件链接示例:https://github.com/babel/babel-eslint/blob/master/lib/parse.js。
4.颠覆
GitHub 不支持 git-archive(允许我们下载特定文件的 git 功能)。然而,GitHub 确实支持各种 Subversion 功能,我们可以将其中一个用于此目的。 Subversion 是一个版本控制系统(git 的替代品)。您需要安装 Subversion。获取您要下载的文件的 GitHub URL。不过,您需要修改此 URL。您需要指向存储库的链接,后跟单词“trunk”,并以嵌套文件的路径结尾。换句话说,使用我上面提到的相同文件链接,我们会将“blob/master”替换为“trunk”。最后,打开一个终端,导航到要下载内容的目录,输入以下命令(将 URL 替换为您构建的 URL): svn export https://github.com/babel/babel -eslint/trunk/lib/parse.js,然后按回车键。
5.卷曲
您需要安装 cURL。转到 GitHub.com 上的文件,左键单击“Raw”按钮以获取直接文件链接,复制此 URL,打开终端,导航到要下载内容的目录,输入执行以下命令,将文件名替换为您想要命名的任何内容,并将 URL 替换为您刚刚复制的 URL: curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib /解析.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)。但是,此方法对于单个文件并不是那么有用(您更有可能使用它来下载特定文件夹,如我上面链接的答案中所述)。
-o parse.js
替换为 -O
以写入与远程文件同名的文件。
有一个名为 Enhanced Github 的 chrome 扩展程序
它将直接在每个文件的右侧添加一个下载按钮。
https://i.stack.imgur.com/mF2EL.png
如果您想使用 wget
从 github
下载 zip 文件
wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true
有关详细信息,请参阅此 website
要跟进 thomasfuchs 所说的内容,但对于 GitHub Enterprise 用户,这里是您可以使用的。
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
这里还有 API 文档 https://developer.github.com/v3/repos/contents
https://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
2021 年,GitHub 添加了一项新功能,即直接在 Web 上打开 Visual Studio 代码。当您在任何存储库中时,只需按句号键 .
即可启动它。
因此,要下载任何特定文件,您可以按 .
键启动 vscode,然后它将在 vscode 中显示存储库的所有文件,您可以通过 right click
> 下载所需的任何文件dowload
。
https://i.stack.imgur.com/TMP4X.png
在github上,打开你要下载的文件找到“Blame”按钮旁边的“Raw”按钮按下键盘上的“Alt”,同时鼠标左键单击文件将自动下载到“. txt”格式(对我有用)手动将“.txt”扩展名更改为“.csv”扩展名
这对我有用,我希望它也对你有用。
简单地复制页面链接 在命令行中输入: wget -L (精确复制的链接) 只需在步骤 2 中将 blob 替换为 raw 输入
您只需使用文件的 raw
URL 即可。
例如下载 AFNetworking 的 README:
curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md
由于它是一个公共回购,您不需要任何凭据。请注意网址的种类:raw.githubusercontent.com/path/to/file
curl
的终端命令和带有 >
的输出重定向
此方法适用于 Windows,因为我从未使用过 MAC,所以我不知道 MAC 中的备用键是什么,我将在下面提到这些键。
让我们谈谈 CSV 文件。如果您想下载 CSV 文件:
转到您要下载的特定数据集并单击它。您将在数据集的右上角看到“原始”按钮。按“Alt”,然后左键单击“Raw”按钮。整个 CSV 将下载到您的系统中。
请记住,您必须同时按 Alt 和左键单击。只需单击“原始”按钮即可在浏览器中打开 CSV。
我希望这会有所帮助。
GitHub 发布功能
您应该使用 GitHub 的 Releases 功能将可下载数据(例如编译的二进制文件)与用于生成该数据的源代码的标记版本相关联,而不是链接以下载 repo 中的特定文件。
https://github.com/blog/1547-release-your-software
我们很高兴地宣布发布,这是一个将软件交付给最终用户的工作流程。发布是一流的对象,带有变更日志和二进制资产,提供了 Git 工件之外的完整项目历史。版本附有版本说明和下载软件或源代码的链接。遵循许多 Git 项目的约定,发布与 Git 标签相关联。您可以使用现有标签,也可以让版本在发布时创建标签。
https://i.stack.imgur.com/XKwa6.jpg
releases
2. 单击提交编号。 3.找到你想要的文件,点击三个点...
,然后选择View file
4.点击View raw
下载文件!!!
要从 Github 存储库下载文件,请使用带有原始文件链接的“curl”命令。
curl https://raw.githubusercontent.com/user/repo/filename --output filename
添加 --output 选项后跟新文件名以将原始文件下载到新创建的文件中。
这肯定会奏效。至少在 Chrome 中。右键单击“原始”图标 -> 将链接另存为。
您链接到的页面回答了第一个问题。 GitHub 还有一个下载工具,用于发布版本等内容。 Google Code 根本没有 Git。刚开始,GitHub、Google Code 和 SourceForge 都是免费托管。 SourceForge 可能仍然做 CVS。
我最近发现了一个名为 gitzip
的服务,它也是开源的:
网站 - http://kinolien.github.io/gitzip/
回购 - https://github.com/KinoLien/gitzip
访问上述站点,输入 repo 或目录 URL,您可以将单个文件或整个目录下载为 zip 文件。
jszip.min.js
? 巨魔脸
现在可以使用这个 google chrome 扩展下载存储库中的任何文件或任何特定文件夹:
GitZip for github: 链接:https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
用法 :
在任何 GitHub 公共存储库页面中。只需双击您需要的项目。点击右下角的下载按钮。查看进度仪表板并等待浏览器触发器下载。获取 ZIP 文件。
https://i.stack.imgur.com/vzxOd.png
https://i.stack.imgur.com/xifhQ.png
我认为新的 url
结构是 raw.giturl
例如:
如果您碰巧使用 curl 和 firefox... 您可以使用 cliget 插件,它会生成包含所有身份验证机制(又名 cookie)的 curl 调用。
因此,右键单击 raw
按钮 cliget->“复制链接的 url”,然后将其粘贴到 shell 中。即使您必须登录才能看到它,您也会得到您的文件。
转到脚本并单击“原始”
然后复制链接并使用 aria2c 链接下载。
例如:aria2c https://raw.githubusercontent.com/kodamail/gscript/master/color.gsf
技巧:我要下载的文件是,https://github.com/kodamail/gscript*/blob*/master/color.gsf
只需将链接修改为 https://raw.githubusercontent.com/kodamail/gscript/master/color.gsf
删除斜体文本并添加相同格式的粗体文本,它将为您提供正确的链接。
它可以与 aria2c、wget 或 curl 一起使用,我在这里使用了 aria2c。
我的简单方法是:
单击“原始”按钮以获取浏览器上显示的 github_csv.csv 的文件内容。然后创建file.csv并在记事本等文本编辑器中打开然后从网站复制文件内容并将其粘贴到file.csv你的file.csv是github_csv.csv
在 Mac 或 Linux 上安装 jq 并使用它从 Github 中提取文件,如下所示:
curl -H 'Authorization: token <ACCESS_TOKEN>' \
-H "Accept: application/vnd.github.v3+raw" -L \
https://api.github.com/repos/MY-ORG/MY-REPO/contents/MY-FILE-PATH | \
jq -r '.content' | base64 --decode > MY_FILE_NAME.txt
Documentation for the above command can be found here.
在“桌面克隆”正下方的右侧,它显示“下载 Zip 文件” 下载 Zip 文件 提取文件
对于使用 GitHub Enterprise 的用户,您需要按照以下方案构建 URL
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