如何从 GitLab 下载单个文件?

新手上路,请多包涵

我知道可以获取然后使用带有路径/到/文件的结帐来下载该特定文件。

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

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

原文由 user9409752 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

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>' 来提供访问令牌。


链接:

您可以 在此处 查看如何查找存储库 api id。

接口文档

更多关于代币

还有一个使用这个 api 的 python 库

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

原文由 ja2142 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了扩展另一个答案,(现在?我不知道什么时候添加了这个功能)可以只获取原始文件而不是带有文件 base64 编码的 json。

文档 中:

端点:GET /projects/:id/repository/files/:file_path/raw

例子:

  curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/13083/repository/files/path%2Fto%2Ffile%2Efoo/raw?ref=master"

请注意,在该示例中,文件的完整路径经过 URL 编码后指向 path/to/file.foo

原文由 Christian W 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题