问题
I have git repository with two remotes (github and bitbucket). Inside I have submodule, that points accordingly to another github/bitbucket repo. But in the definition of submodule is url, that is hardcoded. Can I have two of them? Or one per remote? So that my main repo on github points to submodule on github. And my main repo on Bitbucket points to submodule on bitbucket?
[submodule "programs/mgr-nancy-demo"]
path = programs/mgr-nancy-demo
url = git@github.com:wedkarz/mgr-nancy-demo.git
回答1:
It seems you can use relative URLs for submodules. From 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
So, if you follow the same naming convention in both sites (ie, github.com/you/parent-project
, bitbucket.org/you/parent-project
, github.com/you/child-project
and bitbucket.org/you/child-project
), you should be able to set the submodule like this:
[submodule "programs/mgr-nancy-demo"]
path = programs/mgr-nancy-demo
url = ../mgr-nancy-demo.git
Test it - YMMV!
回答2:
What if it's not all "you" in the paths. For example:
github.com/you/parent-project, bitbucket.org/you/parent-project, github.com/you/child-project, bitbucket.org/other/child-project
I have access to bitbucket.org/other/child-project but not its owner.
来源:https://stackoverflow.com/questions/32317365/multiple-urls-of-git-submodule-per-remote-submodules