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



我在stack上尝试了很多不同的答案,但都不起作用。我正在尝试添加一个存储库作为包含另一个子模块的子模块。所以我做的是:

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

子模块被添加到存储库中,并包含子模块的文件夹。但是文件夹是空的。所以我接下这个命令:

git submodule update --init --recursive

这对我没有任何回报。如果我转到子模块cd submoduleRepo的目录,然后键入git子模块,我得到:

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

这是我的主回购的.gitmodule:

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

在子模块Repo/.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-config:

[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

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

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

最新更新