在命令行中从github下载特定文件,而不是克隆整个repo

h6my8fg2  于 2023-09-29  发布在  Git
关注(0)|答案(7)|浏览(119)

如何使用命令行从github下载2个文件?
大意如下的东西:

git fetch git://github.com/username/Project.git/file1
git fetch git://github.com/username/Project.git/file2
wfsdck30

wfsdck301#

如果您转到页面并查看“raw”提供的链接(在查看文件时位于左上角)。您将看到,您可以通过以下方式访问它:

https://github.com/username/repository/raw/$changeset_hash/path/to/file

除了$changeset_hash,你也可以提供一个分支(例如主)或标签。
您可以使用类似wget的工具检索原始文件。
直接从.git-repository中删除单个文件是不可能的(据我所知),因为数据是如何存储的。

**edit:**当您想要从私有存储库访问文件时,首先需要在您的帐户设置中创建具有相应权限的访问令牌。你可以使用github的API来访问文件的内容,而不是调用上面的url。确保使用自定义媒体类型的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将内容保存在本地文件中,该文件的名称与远程文件的名称相同。为了方便使用,您可以将其 Package 在脚本中。@Chris_Withers建议用一个很好的python片段进行编辑,不幸的是,这个片段被拒绝了,因为它对答案有很大的改变。

zzlelutf

zzlelutf2#

从GitHub复制特定文件的原始链接。(当你在Github中打开文件时,在右上角你可以看到以原始模式打开文件的选项。以raw模式打开并复制URL)
现在在命令行中使用curlwget命令下载文件。

curl -o filename raw-link-to-file

wget -O filename raw-link-to-file

请注意

vbopmzt1

vbopmzt13#

在新的UI界面中(大约2020年6月),如果您的文件url是

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
ruyhziif

ruyhziif4#

git checkout

例如:

git checkout master~2 file1

git checkout --help寻求帮助)

nnvyjq4y

nnvyjq4y5#

需要获取原始链接

curl https://github.com/[user]/[package]/blob/master/package.json

然后调用链接

curl https://raw.githubusercontent.com/[user]/[package]/main/package.json

对我很有效

ocebsuys

ocebsuys6#

你可以试试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,您应该首先复制该页面的url,即https://github.com/reduxjs/redux/tree/master/examples/async,然后在命令行中运行以下命令:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async

fruv7luv

fruv7luv7#

我在这里使用Linux,它对我很有效
步骤1去你要下载的文件,然后点击原始按钮
enter image description here
2.从搜索栏复制url
enter image description here
3.在终端中运行命令

wget paste-url

enter image description here

相关问题