Sin*_*met 4 git github git-submodules
我在堆栈上尝试了很多不同的答案,但没有一个有效。我正在尝试将存储库添加为包含另一个子模块的子模块。所以我做的是这样的:
git submodule add -b develop git@github.com:submoduleRepo
Run Code Online (Sandbox Code Playgroud)
子模块将添加到存储库中,并在其中包含子模块的文件夹。但是该文件夹是空的。所以我跟进这个命令:
git submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)
这没有给我带来任何回报。如果我进入子模块的目录cd submoduleRepo,然后输入 git submodule,我会得到:
fatal: no submodule mapping found in .gitmodules for path 'src/app/nestedSubmoduleRepo'
Run Code Online (Sandbox Code Playgroud)
这是我的主存储库的 .gitmodules:
[submodule "submoduleRepo"]
path = submoduleRepo
url = git@github.com:submoduleRepo.git
branch = develop
Run Code Online (Sandbox Code Playgroud)
在 submoduleRepo/.gitmodules 中:
[submodule ".\\src\\app\\nestedSubmoduleRepo"]
path = .\\src\\app\\nestedSubmoduleRepo
url = git@github.com:nestedSubmoduleRepo.git
Run Code Online (Sandbox Code Playgroud)
为什么我不断收到此错误并且目录未填充?
编辑:
一旦我运行--init --recursive一次,它就会给我错误:
fatal: No url found for submodule path 'submoduleRepo/src/app/nestedSubmoduleRepo' in .gitmodules
Failed to recurse into submodule path 'submoduleRepo'
Run Code Online (Sandbox Code Playgroud)
我的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
Run Code Online (Sandbox Code Playgroud)
问题是您的子模块存储库在.gitmodules文件中使用反斜杠。Git 在存储库中使用正斜杠作为路径,因为它们可以跨平台工作(而反斜杠则不能),并且它无法知道您的存储库是否旨在跨平台。
您需要更新子模块存储库以包含文件中的正确条目(并且您还应该删除.路径组件)。一旦您提交了该内容并使用新提交更新了父存储库,git submodule update --init --recursive就应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |