子模块不与 Git 同步

Submodules don't sync with Git

我有一个依赖于许多其他组件的库。我已经设置了主项目,然后使用 git submodule add [url] [path].

添加了一些子模块

原来的项目工作正常。每次我添加一个子模块时,它都会被克隆到正确的目录中。

- Main project
-- Sub project [cloned correctly]

之后我把原来的项目推到了git。现在,当我克隆主项目时,会出现子项目目录,但它们是空的。

- Main project
-- Sub project just empty folder

.gitmodules 已正确填充,但在新克隆的主项目中,.git/modules 文件夹为空。

没有像 git 子模块同步或 git 子模块更新这样的命令。但是,如果我手动重新添加模块,它们就会出现在目录中,而无需重新下载。它说:

Reactivating local git directory for submodule

这几乎就像 git 将模块存储在内部但不将它们添加到文件系统。

对于这种情况,最佳做法是什么?

你不见了

git submodule init

在克隆(之前可以成功运行git submodule update

克隆后您需要:

git submodule init 
git submodule update

克隆主仓库并同时获取子模块:

git clone --recursive URL