Github API 用于将特定目录下载为 tarball
Github API for downloading a specific directory as tarball
我的问题
我有一个巨大的 git monorepo,我从一个名为 services
的小目录中部署了一项服务。我目前将整个存储库下载为 tarball 只是为了获取那个小目录,这很浪费。
我尝试了什么
- 克隆存储库和
git fetch
更改 - 在目标机器上需要太多 space
- 将整个存储库作为 tarball - 浪费时间,因为 tarball 下载最多可能需要 30 秒,而我只需要整个 tarball 中的几个小文件
我的问题
如何将 github 存储库的特定提交散列中的特定文件或目录下载为 tarball?
您可以在 GitHub 社区签出或克隆单个文件夹,如 this guide 中的那样。他们称之为稀疏结帐,您首先要像这样创建本地存储库:
mkdir directoryName
cd directoryName
git init
git remote add origin -f URL
然后将要在本地使用的文件夹添加到 .git/info/sparse-checkout
。在此之后执行拉取命令时 git 将仅拉取此文件中提到的文件夹。
在此之后您可以定期获取,它只会更新这个特定的文件夹。
我的问题
我有一个巨大的 git monorepo,我从一个名为 services
的小目录中部署了一项服务。我目前将整个存储库下载为 tarball 只是为了获取那个小目录,这很浪费。
我尝试了什么
- 克隆存储库和
git fetch
更改 - 在目标机器上需要太多 space - 将整个存储库作为 tarball - 浪费时间,因为 tarball 下载最多可能需要 30 秒,而我只需要整个 tarball 中的几个小文件
我的问题
如何将 github 存储库的特定提交散列中的特定文件或目录下载为 tarball?
您可以在 GitHub 社区签出或克隆单个文件夹,如 this guide 中的那样。他们称之为稀疏结帐,您首先要像这样创建本地存储库:
mkdir directoryName
cd directoryName
git init
git remote add origin -f URL
然后将要在本地使用的文件夹添加到 .git/info/sparse-checkout
。在此之后执行拉取命令时 git 将仅拉取此文件中提到的文件夹。
在此之后您可以定期获取,它只会更新这个特定的文件夹。