如何从CLI下载GitHub存储库中的子文件夹/文件



我正在尝试在不同的存储库中获取特定的子文件夹,并想知道如何运行自动脚本,将所有需要的子文件夹下载到本地机器或拉到本地git repo。

我尝试过使用";CCD_ 1";但是,在Git Bash上,它确实会根据需要返回子文件夹及其文件。

如有任何协助,我们将不胜感激。

谢谢!。Caleb

通常,您可以通过使用shell脚本将存储库克隆到系统中,然后从系统中提取文件来实现这一点。如果你想下载更少的数据,你可以使用部分克隆(例如,git clone --filter=blob:none(,然后只有你需要的Blob才会按需删除。

如果你只需要每个存储库中的一个或两个分支,并且它们都来自GitHub,你可以使用GitHub REST API为你需要的分支和存储库下载tarball。请注意,如果您每小时发出超过60个请求,则需要使用个人访问令牌。

如果您有部分克隆,您也可以使用稀疏签出来只筛选您想要的文件。然而,您也可以使用git archive来生成tarball,如果您有tarball,无论是从git archive还是GitHub的API,您都只能提取某些文件或文件夹,如:

tar -C DESTDIR -xf foo.tar.gz folder1/ folder2/

请注意,GitHub REST API不提供仅下载数据子集的功能。您必须下载一个由整棵树组成的tarball或commit。

最新更新