在 .gitmodules 中找不到路径 xx 的子模块映射

no submodule mapping found in .gitmodules for path xx

我在堆栈上尝试了很多不同的答案,但 none 其中的答案有效。我正在尝试将存储库添加为包含另一个子模块的子模块。所以我做的是:

git submodule add -b develop git@github.com:submoduleRepo

子模块已添加到存储库中,并在其中包含子模块的文件夹。但是文件夹是空的。所以我跟进这个命令:

git submodule update --init --recursive

哪个returns我什么都没有。如果我转到子模块 cd submoduleRepo 的目录,然后键入 git 子模块,我得到:

fatal: no submodule mapping found in .gitmodules for path 'src/app/nestedSubmoduleRepo'

这是我的.git主仓库的模块:

[submodule "submoduleRepo"]
    path = submoduleRepo
    url = git@github.com:submoduleRepo.git
    branch = develop

并且在 submoduleRepo/.gitmodules:

[submodule ".\src\app\nestedSubmoduleRepo"]
    path = .\src\app\nestedSubmoduleRepo
    url = git@github.com:nestedSubmoduleRepo.git

为什么我不断收到此错误并且目录没有被填充?

编辑:

一旦我 运行 --init --recursive 一旦它给我错误:

fatal: No url found for submodule path 'submoduleRepo/src/app/nestedSubmoduleRepo' in .gitmodules
Failed to recurse into submodule path 'submoduleRepo'

我的 git 配置:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = git@github.com:mainRepo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "submoduleRepo"]
    url = git@github.com:submoduleRepo.git
    active = true

问题是您的子模块存储库在 .gitmodules 文件中使用了反斜杠。 Git 对存储库中的路径使用正斜杠,因为它们可以跨平台工作(而反斜杠则不能),并且它无法知道您的存储库是否打算跨平台。

您需要更新子模块存储库以在文件中包含正确的条目(您还应该删除 . 路径组件)。一旦您提交并使用新提交更新父存储库,git submodule update --init --recursive 应该可以正常工作。