我有一个想要克隆的项目:
$ 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