如何使用命令行从github下载2个文件?
有些东西:
git fetch git://github.com/username/Project.git/file1
git fetch git://github.com/username/Project.git/file2
答案 0 :(得分:24)
如果您转到该页面并查看“原始”提供的链接(在查看文件时位于左上角)。您将看到,您可以通过以下方式访问它:
https://github.com/username/repository/raw/$changeset_hash/path/to/file
您也可以提供分支(例如母版)或代码,而不是$changeset_hash
。
您可以使用类似wget的内容检索原始文件。
由于数据的存储方式,因此无法直接从.git-repository访问单个文件(据我所知)。
编辑:如果要从私人仓库访问文件,首先必须在帐户设置中创建具有相应权限的访问令牌。您可以使用github's API to access the content of a file,而不是调用上面的网址。请务必使用custom media types的Accept-header来获取原始数据。这可能看起来像这样:
curl \
-H 'Authorization: token $YOUR_TOKEN' \
-H 'Accept: application/vnd.github.v3.raw' \
-O \
-L 'https://api.github.com/repos/:owner/:repo/contents/:path'
-O
将内容保存在本地文件中,其名称与远程文件名相同。为了便于使用,您可以将其包装在脚本中。 @Chris_Withers建议使用一个不错的python代码段进行编辑,不幸的是,这个代码更改了答案。
答案 1 :(得分:15)
从GitHub复制特定文件的原始链接。(当你在Github中打开文件时,在右上角你可以看到以原始模式打开文件的选项。以原始模式打开它并复制URL)< / p>
现在在命令行中使用curl命令下载文件。
curl -o filename raw-link-to-file
答案 2 :(得分:2)
在新的UI界面中(大约2020年6月),如果您的文件网址为
https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf
然后
wget https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf?raw=true
答案 3 :(得分:1)
git checkout
E.g:
git checkout master~2 file1
(git checkout --help
寻求帮助)
答案 4 :(得分:0)
您可以尝试github-files-fetcher,它是一个命令行工具,可以从GitHub存储库下载单个文件夹或文件。
鉴于上面的示例,您可以使用以下命令从github提取两个特定文件:
fetcher --url="git://github.com/username/Project.git/file1"
fetcher --url="git://github.com/username/Project.git/file2"
请考虑一个更现实的情况:您正在访问以下网页,并且想单独下载async
子目录。
https://github.com/reduxjs/redux/tree/master/examples
对不起,不允许发布图片。
使用github-files-fetcher
,您应该首先复制该页面的https://github.com/reduxjs/redux/tree/master/examples/async的url
,然后在命令行中运行以下命令:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
答案 5 :(得分:0)
我在这里使用 linux,它对我有用
步骤 1 转到您要下载的文件并单击原始按钮
第2步从搜索栏中复制网址
步骤 3 在终端中运行命令
wget paste-url