python - 如何从 GitLab 下载单个文件?

标签 python linux git

我知道可以获取然后使用 checkout 和 path/to/file 来下载该特定文件。

我的问题是我每天有 1 MB 的数据上限,git fetch 无论如何都会下载所有数据,即使在我使用 git checkout 之前它不会将它们保存到光盘。我仍然使用我的数据

我对 git fetch/checkout 的理解正确吗?有没有一种方法可以下载特定文件,只在继续下载之前查看是否有新版本。

最佳答案

Gitlab 有一个用于此的 rest API。

您可以使用 curl 从存储库中获取文件:

curl https://gitlab.com/api/v4/projects/:id/repository/files/:filename\?ref\=:ref

例如:

curl https://gitlab.com/api/v4/projects/12949323/repository/files/.gitignore\?ref\=master

如果您的存储库不是公开的,您还需要通过添加 --header 'Private-Token: <your_access_token>' 来提供访问 token .


链接:

您可以查看如何查找存储库 api id here .

Api documentation

More on tokens

还有一个python library使用此 api。

请注意,这是 GitLab 特定的解决方案,不适用于其他主机。

关于python - 如何从 GitLab 下载单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56943327/

相关文章:

git - 你如何给 git commit 一个名字?

python - 将带有空格的数据帧转换为数字、障碍物 - 空格(例如 3 014.0 即 '3\xa0014.0' )

python - pie() 收到意外的关键字参数 'startangle'

linux脚本查找早于x天的文件并删除

linux - 在 Linux 上的 lldb 中打开 .NET Core 2.0 转储 - 哪个 lldb 版本?

linux - Ubuntu 上的 Samba 文件共享不会屏蔽或强制新文件的权限

git - 致命的 : open/dev/null or dup failed: No such file or directory

git - 如何压缩两个不连续的提交?

python - 确定列表中一列最长字符串长度的最快方法

python - 如何在python中的字典列表的字典中对数据进行排序?