如何检出Git仓库的所有子模块及子子模块?
嵌套Git子模块全量检出方案
如果遇到主仓库嵌套多层子模块,用git --recurse-submodules无法拉取子子模块的情况,用下面几种方式解决:
方法一:已克隆主仓库后补全所有子模块
直接在主仓库根目录执行:
git submodule update --init --recursive
这个命令会自动初始化所有未配置的子模块,并且递归拉取所有嵌套层级的子子模块。
方法二:首次克隆时直接拉取全量内容
如果是第一次克隆仓库,直接用带递归参数的克隆命令:
git clone --recurse-submodules <你的仓库URL>
注:如果你的Git版本低于2.13,这个参数可能不支持嵌套递归,此时可以先克隆主仓库,再用方法一的命令补全。
方法三:设置全局配置默认递归子模块
如果经常处理嵌套子模块的仓库,可以设置全局Git配置,让后续所有子模块操作都自动递归:
git config --global submodule.recurse true
之后不管是克隆还是更新子模块,都会自动处理所有嵌套层级。
内容的提问来源于stack exchange,提问作者ArmadilloChubbz65
相关产品推荐
相关产品推荐

