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
相关产品推荐
相关产品推荐

