git submodule update --recursive无响应,手动clone子模块正常,求解决方案
解决思路
检查子模块URL配置一致性
查看主仓库根目录下的.gitmodules文件,对比其中子模块的url字段和你手动克隆时用的URL是否一致。若不一致,修改.gitmodules中对应子模块的URL,然后执行:git submodule sync --recursive同步配置后再尝试运行:
git submodule update --init --recursive调整Git网络相关配置
可能是Git默认的超时或低速检测导致进程挂起,执行以下命令修改配置:# 设置子模块拉取超时为5分钟(可按需调整) git config --global submodule.fetchTimeout 300 # 关闭低速网络检测 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999配置完成后重新执行子模块更新命令。
启用并行拉取子模块
单线程拉取可能因网络问题卡住,添加--jobs参数指定并行任务数(示例为4线程):git submodule update --init --recursive --jobs 4重置子模块状态后重新拉取
先清除已有的子模块状态,再重新初始化拉取:git submodule deinit --all -f git submodule update --init --recursive升级Git版本
旧版本Git的子模块功能可能存在bug,升级到最新稳定版后再尝试执行相关命令。
内容的提问来源于stack exchange,提问作者Coty Embry
相关产品推荐
相关产品推荐

