直到今天,我仍在github中托管我的git存储库及其子模块存储库。超级存储库中所有提交中的子模块文件夹都将重定向到子模块存储库中正确的提交中。
现在,我必须将子模块存储库从github移植到bitbucket,然后删除github中的子模块存储库。此操作会破坏我在超级存储库中的提交吗?超级存储库提交是否不在其提交中存储子模块的url信息?
示例场景:
可以说子模块中有一个提交c67061d7710e699a191965a02d9d0da341d87117
,在许多提交中,超级存储库都引用了该提交。我想从
githubserver / tree / c67061d7710e699a191965a02d9d0da341d87117
到
bitbucketserver / tree / c67061d7710e699a191965a02d9d0da341d87117
在超级存储库中包含对c67061d7710e699a191965a02d9d0da341d87117
我在其他stackoverflow问题here中了解了如何更新子模块的url。但是他们没有明确提及该网址更新会更改所有提交中的引用,还是仅更改执行此操作之后的提交。
答案 0 :(得分:1)
好消息是,从长远来看,这会很好,因为您会将所有历史记录从github移至bitbucket并适当地更新了.gitmodules
文件。完成此操作后,新的结帐和git submodule init
将正常工作。
坏消息是现有的检出将继续使用旧的远程URL,因此git submodule update
将开始失败。要解决此问题,您必须告诉已检出存储库的每个人都运行git submodule sync
,以便将子模块的远程更新为bitbucket。