如何在 `git clone` 之前获取存储库的 git 子模块列表?

How to get a list of git submodules of repository before `git clone`?

我正在尝试在执行克隆之前获取存储库的子模块列表。

然后选择要克隆的子模块仓库。

有什么办法吗?

如果您想在不从超级项目中克隆超级项目下载文件的情况下查看第一级子模块列表.gitmodules。您可以使用 git archive:

git archive --format=tar --remote=$ORIGIN_URL HEAD -- .gitmodules | tar -O -xf -

由于子模块可能是递归的,因此您必须对下载的每个子模块重复此操作 .gitmodules

之后您可以手动克隆任何子模块的存储库。

您可能还想在克隆超级项目后查看子模块列表。首先,没有子模块的克隆:

git clone $ORIGIN_URL # Don't use `--recursive`
cd <repo_dir>
git submodule init
cat .gitmodules
git submodule update submodule1 submodule2…