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

Git非主分支使用--recurse-submodules克隆后子模块为空的原因

为什么切换到带新子模块的分支后需要手动执行git submodule update --init?
  • git clone --recurse-submodules仅会针对克隆时默认检出的分支(这里是main分支)初始化并拉取子模块。由于你的main分支没有子模块,这个参数在克隆阶段没有执行任何子模块相关的实际操作。
  • 切换到feature分支时,Git只会同步当前分支的仓库文件,包括新增的.gitmodules配置和子模块的占位目录subby/,但不会自动触发子模块的初始化与内容拉取——Git默认不会在分支切换时自动处理这类跨分支的子模块状态变更,尤其是原分支完全没有子模块的场景。
  • git submodule update --init会读取当前分支下的.gitmodules配置,完成子模块仓库的初始化,同时拉取对应提交的子模块内容,这才能让subby/目录出现实际文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:31:05