git——递归不';t克隆子模

git——递归不';t克隆子模,git,github,git-submodules,Git,Github,Git Submodules,我了解到,要下载带有主存储库的子模块,我们可以在克隆主存储库时使用--recursive选项 我也做了同样的git克隆--recursivegit@github.com:激情/academy.git 我发现它只创建了一个子模块的空目录,而没有下载它的代码 我们是否需要做额外的工作,比如git子模块更新--init--recursive?如果是,那么在克隆主存储库时,--recursive标志有什么用?如果您使用的是最近的git,但它仍然没有克隆子模块,这意味着这些空文件夹不是子模块,而是 嵌套的

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

我也做了同样的git克隆--recursivegit@github.com:激情/academy.git

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


我们是否需要做额外的工作,比如
git子模块更新--init--recursive
?如果是,那么在克隆主存储库时,
--recursive
标志有什么用?

如果您使用的是最近的git,但它仍然没有克隆子模块,这意味着这些空文件夹不是子模块,而是

嵌套的repo在其父repo中记录为,但不会有任何与之关联的
.gitmodules
文件

运行状况检查
似乎是一个嵌套的git,但克隆时不确定。请在.gitmodules中找不到用于运行状况检查路径的子模块映射。。嵌套git repo是否需要在.gitmodules中有条目

如果您希望将嵌套的git repo作为子模块进行识别和管理,那么可以


如所示,在
健康检查
.gitmodules
中缺少路径条目可能会阻止
hellospawn
(这似乎是一个合法的子模块)被签出。

我也有类似的问题。需要检查的几件事:

  • 检查您的.gitmodules文件:
  • 检查.git/config文件,确保列出的子模块url与.gitmodules中的相同:
  • 最后,检查url并确保这是正确的url(应该与您在该子模块的“git克隆”中键入的内容相同)

  • 如果您使用的是Git 1.6.5或更高版本,
    Git克隆--recursive
    应该按照您的预期进行。您使用的版本是否早于该版本?这是一个相当旧的版本,但值得一问:DI发现我有两个子目录,一个是
    hellospawn
    ,它肯定是子模块(在.gitmodules中输入),另一个文件夹是
    health check
    (在.gitmodules中没有输入)。我怀疑
    健康检查
    是嵌套回购,而不是“子模块”。假设是这样的话,那么就不会——递归标志拉“hellspawn”代码了。。我希望我能解释一下。@voila是的,
    --recursive
    应该克隆
    hellospawn
    (只是为了确定,你使用的是什么版本的git,在哪个操作系统上?@voila还有,
    git ls树头hellospawn
    git版本
    git版本2.6.4
    。。我刚刚又做了一次主回购的克隆,最后一行给了我这个
    检出文件:100%(40517/40517),完成了。在.gitmodules中找不到路径“运行状况检查”的子模块映射。
    。在
    hellspawn
    @voila中我没有得到任何解释
    健康检查的信息。git ls树头hellospawn怎么样?
    
    % cat .gitmodules
    [submodule "src/mysubmodule"]
        path = src/mysubmodule
        url = myurl/mysubmodule.git
    
    % cat .git/config
    ...
    [submodule "src/mysubmodule"]
        url = myurl/mysubmodule.git
        active = true