git --recursive没有克隆子模块

时间:2015-12-22 04:22:19

标签: git github git-submodules

我了解到要下载带有主存储库的子模块,我们可以在克隆主存储库时使用--recursive选项。

我做了同样的git clone --recursive git@github.com:passion/academy.git

我发现它只创建一个子模块的空目录,但没有下载它的代码。

我们需要做一些额外的事情,比如git submodule update --init --recursive吗?如果是,那么克隆主存储库时--recursive标志的用途是什么?

2 个答案:

答案 0 :(得分:3)

如果您使用的是最新的git,并且仍然没有克隆子模块,则表示这些空文件夹不是子模块,而是 nested git repo 。< / p>

嵌套式仓库在其父仓库中以 gitlink 的形式记录,但不会有任何.gitmodules个与之关联的文件。

  

health-check似乎是一个嵌套的git,但不确定克隆时是否给我No submodule mapping found in .gitmodules for path for health-check ..嵌套git repos是否有必要在.gitmodules中输入?

如果您希望将嵌套的git repo识别并作为子模块进行管理,是的。

正如your next question所示,.gitmodules health-check中缺少路径条目可能会阻止hellospawn(这似乎是一个合法的子模块)检查出来。

答案 1 :(得分:0)

我有一个类似的问题。要检查的几件事:

  1. 检查您的 .gitmodules 文件:
Set
  1. 检查您的 .git / config 文件,并确保列出的子模块URL与.gitmodules中的相同:
% cat .gitmodules
[submodule "src/mysubmodule"]
    path = src/mysubmodule
    url = myurl/mysubmodule.git
  1. 最后,检查url并确保它是正确的url(应与您在该子模块的“ git clone”中键入的内容相同)。
相关问题