用例是我必须将某些存储库移至新服务器。因此,这些存储库将获得一个新的URL。
引用这些子模块的父项目需要使用该子模块的新url进行更新。
我想做以下事情。



但是,由于先前的提交具有.gitmodule的早期版本,如果我 checkout 父项目的先前的提交-它将不寻找旧服务器吗?

为了确保可重复性,我们需要所有旧的提交都可以正常工作。
有解决这个问题的主意吗?

最佳答案

通常仅在初始化子模块时或在.gitmodules上使用git submodule sync中的URL。初始化(git submodule init)时,将URL放入存储库的.git/config中,并且将子模块克隆到位(在git submodule update上)时,要使用的URL从配置中获取。使用.gitmodules中的URL的唯一其他时间是运行git submodule sync时,这将类似地更新配置中的URL,但还将子模块中的origin远程设置为相同的URL。

这意味着在 checkout 较早的提交并运行git submodule update时不会有任何问题-在父存储库中 checkout 新的提交时,子模块中的远程origin不会更改。

关于git - 如何在所有提交中更新子模块URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11987037/

10-12 00:30
查看更多