克隆包含所有子模块的git仓库

Cla*_*dio 16 git git-push git-clone git-submodules

我有一个工作的git存储库,包含几个子模块(通过克隆不同的存储库获得).

现在,我想通过推送或克隆将整个存储库(包含所有子模块)复制到另一台机器上的裸git 存储库中.我很好地丢失了子模块的历史(我只是想保留它们的内容).

这可能吗 ?在我的尝试中,在克隆的存储库中子模块目录为空.

PS我知道这不是正确的工作流程(请参阅创建带子模块的公共存储库),但是不可能更新原始子模块.

小智 23

你可以使用以下方法克隆所有子模块的git repo recursive:

git clone --recursive your-repo-url
Run Code Online (Sandbox Code Playgroud)

另一方面,如果你已经克隆过,你可以使用:

git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)

您不会丢失子模块中的任何历史记录