直到今天,我还在github中托管我的git存储库及其子模块存储库。并将超级存储库中所有提交中的子模块文件夹重定向到子模块存储库中的正确提交。
现在,我必须将子模块存储库从github移植到bitbucket,并移除github中的子模块存储库。这个动作会破坏我在超级存储库中的提交吗?超级存储库不将子模块的url信息存储在提交中吗?
示例场景
让我们假设在子模块中有一个提交c67061d7710e699a191965a02d9d0da341d87117
,这在许多提交中都是在超级存储库中引用的。我想更改提交的引用
githubserver/tree/c67061d7710e699a191965a02d9d0da341d87117
至
bitbucketserver/tree/c67061d7710e699a191965a02d9d0da341d87117
在包含对c67061d7710e699a191965a02d9d0da341d87117
的引用的超级存储库中提交
我读到了如何在其他堆栈溢出问题here中更新子模块的url。但是他们并没有明确提到url更新是改变了所有提交中的引用,还是只提到了在这样的操作之后提交的引用。
发布于 2018-08-10 17:11:29
好消息是,从长远来看,这会很好,因为您将把所有的历史记录从github移动到bitbucket,并适当地更新您的.gitmodules
文件。一旦您这样做,新的结帐和git submodule init
将运行良好。
坏消息是,现有的签出将继续使用旧的远程URL,因此git submodule update
将开始失败。要解决这个问题,您必须告诉所有已签出您的存储库的人运行git submodule sync
,以便将子模块的远程处理更新为bitbucket。
https://stackoverflow.com/questions/51789533
复制相似问题