.gitmodules选项忽略子模块中的子模块

.gitmodules选项忽略子模块中的子模块,git,configuration,git-submodules,Git,Configuration,Git Submodules,我有一个git存储库,其子模块的层次结构类似于: TopLevelRepo +-.gitmodules#这是我想要配置的地方 +-外部 +-RepoA#这是第三方存储库,我无法修改它 |+-外部 |+-RepoB#此存储库不是必需的,而且非常大 |+-RepoC#此存储库是必需的 +-报告 +-几十个以上的存储库 我克隆存储库的方式如下: git克隆——递归https://github.com/TopLevelRepo 顶级回购 #或 git克隆https://github.com/TopLe

我有一个git存储库,其子模块的层次结构类似于:

TopLevelRepo
+-.gitmodules#这是我想要配置的地方
+-外部
+-RepoA#这是第三方存储库,我无法修改它
|+-外部
|+-RepoB#此存储库不是必需的,而且非常大
|+-RepoC#此存储库是必需的
+-报告
+-几十个以上的存储库
我克隆存储库的方式如下:

git克隆——递归https://github.com/TopLevelRepo 顶级回购
#或
git克隆https://github.com/TopLevelRepo 顶级回购
cd TopLevelRepo
git子模块更新--init--递归
是否有一个选项可以添加到.gitmodules(或签入存储库的任何其他文件)中,允许我跳过(避免克隆)RepoB,但保留RepoC

我已经找到了这个: 这显然是我想要的,但我需要它存储在顶级存储库中


谢谢。

不,顶级超级项目无法管理子模块,只有直接上级可以。试着这样做:

git clone https://github.com/TopLevelRepo TopLevelRepo
cd TopLevelRepo
git submodules update --init RepoA
cd RepoA
git config submodule.RepoB.update none
cd ../.. # back to TopLevelRepo
git submodules update --init --recursive

或者
git-C RepoA config submodule.RepoB.update none