Windows版Git Bash中submodule.recurse配置不生效问题
问题解答
配置不生效原因
你使用的Git 2.34.1版本原生支持submodule.recurse配置,Windows版Git也没有阉割该功能,配置未生效是因为:submodule.recurse true的适用范围默认不包含普通git clone操作,仅对git pull、git checkout、git fetch等存量仓库的操作生效,这是Git的统一设计,不存在版本功能变更。
补充配置方案
如果需要实现clone时自动拉取子模块,可选择以下任意一种方案:
- 单次clone时添加参数:执行
git clone --recurse-submodules <目标仓库地址>,clone完成后会自动完成子模块的初始化和内容拉取 - 全局配置clone默认行为:执行
git config --global alias.clone 'clone --recurse-submodules'配置别名,后续所有git clone操作都会自动带上递归拉取子模块的参数
现有配置校验
你可以执行 git config --global --list 确认已配置的条目:
- 存在
submodule.recurse=true即表示你的原有配置已经生效,后续在已克隆的仓库执行pull、切换分支等操作时,会自动同步对应版本的子模块内容,无需手动执行git submodule update - 若配置了clone别名,会额外展示
alias.clone=clone --recurse-submodules条目
内容的提问来源于stack exchange,提问作者J-bob
相关产品推荐
相关产品推荐

