git clone 复制子模块,但它们不再是存储库

git clone 复制子模块,但它们不再是存储库

我有一个想要克隆的项目:

$ git clone repo1 repo2

所有内容都复制过来。然后我启动子模块:

$ git submodule update --init --recursive

它会下载并填充所有子模块的文件夹。我进入子模块的目录,它不再是一个合适的存储库。

我仔细查看了子模块文件,发现.git文件夹已变成文件。这意味着我无法在新克隆的项目中对子模块进行开发工作。

我如何让克隆按照原始项目复制子模块(作为 git repos 本身)?

编辑:这可能与从同一台机器上的相对路径克隆有关吗?也许绝对路径会改变克隆的方式?

这个线程与我遇到的问题完全相同,但我只是认为提出的解决方案不是理想的答案:https://stackoverflow.com/questions/9459532/revert-to-pre-git-v1-7-8-git-submodule-behavior-with-submodule-filesystem-locati

答案1

我了解到已启动的子模块是无头的。修复:

$ git submodule foreach git checkout master

相关内容