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