git 子模块的多个 url - 每个远程子模块

Multiple urls of git submodule - per remote submodules

我有 git 存储库和两个遥控器(github 和 bitbucket)。我里面有子模块,相应地指向另一个 github/bitbucket 仓库。 但是在子模块的定义中是url,这是硬编码的。我可以要两个吗?还是每个遥控器一个?这样我在 github 上的主仓库指向 github 上的子模块。我在 Bitbucket 上的主要回购指向 bitbucket 上的子模块?

[submodule "programs/mgr-nancy-demo"]
    path = programs/mgr-nancy-demo
    url = git@github.com:wedkarz/mgr-nancy-demo.git

看来可以use relative URLs for submodules。来自 git help submodules:

COMMANDS

add

[...]

<repository> is the URL of the new submodule’s origin repository. This may be either an absolute URL, or (if it begins with ./ or ../), the location relative to the superproject’s origin repository

因此,如果您在两个站点中遵循相同的命名约定(即 github.com/you/parent-projectbitbucket.org/you/parent-projectgithub.com/you/child-projectbitbucket.org/you/child-project),您应该能够像这样设置子模块:

[submodule "programs/mgr-nancy-demo"]
    path = programs/mgr-nancy-demo
    url = ../mgr-nancy-demo.git

测试一下 - YMMV!