You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git嵌套子模块克隆疑问:克隆父仓库[1]为何无法获取子模块[3]?

解决嵌套Git子模块克隆不完整的问题

问题原因

git clone --recurse-submodules命令默认只会递归克隆当前仓库的直接子模块(也就是仓库[1]里的[2]),不会自动处理子模块内部的嵌套子模块([2]里的[3])。这就是克隆[1]时只能拿到[1]和[2],但单独克隆[2]能正常获取[3]的核心原因。

解决方案

方法1:克隆后手动递归更新所有嵌套子模块

克隆仓库[1]完成后,在[1]的根目录执行以下命令,即可拉取所有层级的子模块代码:

git submodule update --init --recursive

该命令会遍历所有子模块(包括嵌套在[2]里的[3]),完成初始化与代码拉取操作。

方法2:一步完成克隆与全量递归子模块

如果想一次性完成克隆和所有嵌套子模块的拉取,可使用组合命令:

git clone {仓库[1]的URL} && cd {仓库[1]的目录名} && git submodule update --init --recursive

方法3:Git 2.13+版本的简化操作(可选)

从Git 2.13版本开始,可通过以下流程简化操作(本质与前两种方法逻辑一致):

git clone --recurse-submodules {仓库[1]的URL}
cd {仓库[1]的目录名}
git submodule update --init --recursive

额外验证项

虽然你已确认BitBucket上的关联正常,可再快速检查两点:

  • 仓库[1]的.gitmodules文件中,子模块[2]的路径与URL配置无误
  • 仓库[2]已提交包含子模块[3]的.gitmodules文件及对应子模块引用(因单独克隆[2]可正常获取[3],此项大概率无问题)

内容的提问来源于stack exchange,提问作者Kim Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:01:03