嵌套 Git 子模块无法使用 --recursive 标志正确克隆
Nested Git submodules not cloning properly with --recursive flag
我正在设置 github 项目的内部镜像。该项目中有子模块,在原始子模块中也有子模块。
我已经单独镜像了所有存储库,并更新了所有存储库中的 .gitmodules 文件以指向内部镜像位置。所有存储库都使用 --recursive 单独克隆,没有任何问题。出于某种原因,当我尝试克隆任何具有嵌套子模块的存储库时,第一组子模块从 .gitmodules 中正确读取并被克隆,但是该子模块中的子模块将全部尝试从其原始 github 克隆网址。我不知道这些 URL 是从哪里来的,因为嵌套的子模块都更新了它们的 .gitmodules 文件。
有没有人运行以前参与过这个?有任何想法吗?
这是最好的方法:
git submodule update --init --recursive
这是否解决了您的问题?
当您使用 git submodule update --init --recursive
进行初始设置时,您将直接从记录的提交中获取 .gitmodules
值。我在想当你更新 .gitmodules
文件时你没有做深度优先,所以当记录在第一级子模块中的 .gitmodules
被更新和添加时,它自己的子模块没有尚未更新和添加,因此记录的提交仍然具有原始 .gitmodules
文件。
我正在设置 github 项目的内部镜像。该项目中有子模块,在原始子模块中也有子模块。
我已经单独镜像了所有存储库,并更新了所有存储库中的 .gitmodules 文件以指向内部镜像位置。所有存储库都使用 --recursive 单独克隆,没有任何问题。出于某种原因,当我尝试克隆任何具有嵌套子模块的存储库时,第一组子模块从 .gitmodules 中正确读取并被克隆,但是该子模块中的子模块将全部尝试从其原始 github 克隆网址。我不知道这些 URL 是从哪里来的,因为嵌套的子模块都更新了它们的 .gitmodules 文件。
有没有人运行以前参与过这个?有任何想法吗?
这是最好的方法:
git submodule update --init --recursive
这是否解决了您的问题?
当您使用 git submodule update --init --recursive
进行初始设置时,您将直接从记录的提交中获取 .gitmodules
值。我在想当你更新 .gitmodules
文件时你没有做深度优先,所以当记录在第一级子模块中的 .gitmodules
被更新和添加时,它自己的子模块没有尚未更新和添加,因此记录的提交仍然具有原始 .gitmodules
文件。