我的项目包含一个子模块submodA
。对于branch_dev
,子模块的原始URL链接到sub_dev
,它是sub_master
的分支,但我可以应用修改和提交。对于branch_master
,子模块的原始网址链接到sub_master
branch_dev
/ submodA
- 成份,其中> sub_dev
--fork - > sub_master
master_dev
/ submodA
- 成份,其中> sub_master
通过这样做,我可以克隆branch_dev
并使用sub_dev
自动查找我在git submodule update --init --recursive
中所做的修改。
我的问题是我的两个分支之间不同的submodA
的原始网址不会自动更改,我必须在子模块中手动更改原始网址git remote set-url origin sub_dev
或{{1 }}
是否有解决方案在分支之间切换时自动更改子模块的原始URL?我可能会尝试一些过于复杂的事情,所以我也很乐意在这里为我的情况提供其他解决方案。
答案 0 :(得分:0)
IMO您根本不需要更改原点的URL。添加两个不同的遥控器(其中一个可以称为origin
,但这无关紧要)并为每个分支设置不同的上游。像这样:
cd submodA
git branch --set-upstream-to=origin master
git branch --set-upstream-to=origin2 dev
现在您可以在子模块中git push/pull
而无需显式命名远程,因此git使用当前已检出分支的上游。