我正在设置github项目的内部镜像。该项目中有子模块,在原始子模块中也有子模块。
我已经单独镜像了所有存储库,并更新了所有存储库中的.gitmodules文件以指向内部镜像位置。所有存储库都使用--recursive单独克隆,没有任何问题。出于某种原因,当我尝试克隆任何具有嵌套子模块的存储库时,可以从.gitmodules中正确读取第一组子模块并进行克隆,但是该子模块中的子模块将全部尝试从其原始github URL进行克隆。我无法弄清楚这些URL的来源,因为嵌套的子模块都已更新了.gitmodules文件。
有没有人遇到过这个?有任何想法吗?
答案 0 :(得分:1)
当您使用git submodule update --init --recursive
进行初始设置时,您将直接从记录的提交中获取.gitmodules
值。我在想你更新.gitmodules
文件的时候没有深度优先,所以当第一级子模块中记录的.gitmodules
被更新和添加时,它自己子模块尚未更新和添加,因此记录的提交仍然具有原始.gitmodules
文件。
答案 1 :(得分:0)
这是执行此操作的最佳方式:
git submodule update --init --recursive
这会解决您的问题吗?