子模块不与 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
我有一个依赖于许多其他组件的库。我已经设置了主项目,然后使用 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