我克隆了有4个子模块的Blender repo
[submodule "release/scripts/addons"]
path = release/scripts/addons
url = ../blender-addons.git
ignore = all
[submodule "release/scripts/addons_contrib"]
path = release/scripts/addons_contrib
url = ../blender-addons-contrib.git
ignore = all
[submodule "release/datafiles/locale"]
path = release/datafiles/locale
url = ../blender-translations.git
ignore = all
[submodule "scons"]
path = scons
url = ../scons.git
ignore = all
然后我通过git checkout -b branchname <commit>
从特定提交创建了分支。
然后我添加了新的github remote并将该分支推送到该github repo。
然后我注意到我甚至需要克隆一个子模块(用于构建的scons),所以我使用git submodule update --init scons
,但是它试图连接到github,这显然是错误的,因为它必须从原始远程克隆。
问:我仍然无法从原始回购中克隆 scons 。它仍然试图从github克隆,为什么?其他子模块按预期工作。
我不确定是不是因为我试图从我创建的新分支中首次运行git submodule
命令,而不是从主分区运行。
我甚至尝试过master但仍然有相同的行为(连接到github)。
答案 0 :(得分:0)
如果您的示例.gitmodules文件是逐字复制的,特别是如果网址是“相对”的话。 URL(即它们以./
或../
开头)然后会导致git submodule update
命令尝试从与超级项目相同的基本URL中提取子模块,在本例中为GitHub(有关子模块的详细信息,请参阅http://git-scm.com/docs/git-submodule
你能否澄清一下你的意思
其他子模块按预期工作。
因为它们似乎也有相对的URL,因此我希望它们以同样的方式失败。
我建议,更新.gitmodules文件以使用指向原始仓库位置的完整URL。这应该解决从其他URL获取的任何问题。