git submodule update --init --recursive无法拉取解决

用

bash 复制代码
git submodule update --init --recursive

一直卡在clone解决方法,先用ssh clone下源代码,再进入目录,先初始化

bash 复制代码
git submodule init

再在当前目录下加入下面的脚本

bash 复制代码
#!/bin/bash

pull_submodule_recursive()
{
    if [ -f ".gitmodules" ];then
        echo ".gitmodules found"
        # backup
        cp .gitmodules .gitmodules.bak
        while read line
        do
            # substitude the https with ssh
            echo ${line} | sed 's/https:\/\/github.com\//git@github.com:/g' >> .new_gitmodules
        done < .gitmodules
        mv .new_gitmodules .gitmodules
        # pull current submodules
        git submodule init
        git submodule sync
        git submodule update
        # get the directories of current submodules
        local directories=$(cat .gitmodules | grep path | awk '{print $3}')
        for directory in $directories
        do
            if [ -d $directory ];then
                # enter the directory
                pushd ${directory} > /dev/null
                # pull one submodule and its submodules
                pull_submodule_recursive
                # return to the last working directory
                popd > /dev/null
            fi
        done
    else
        echo "current submodule has no submodule, return to last directory..."
    fi
    return 0
}

pull_submodule_recursive

最后再运行这个脚本即可,记得赋予执行权限(+x),有可能还是会出现网络问题

bash 复制代码
bash a.sh
相关推荐
wing982 小时前
人生第一个私活:不到 2 小时,到手 350 元
前端·后端·程序员
张张123y2 小时前
后端第十二课:Agent 开发(让大模型从“会答“升级到“会做“)
前端·大模型·llm·agent·rag
A小码哥2 小时前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring
鬼手点金2 小时前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化
PHP是世界上最好的语言3 小时前
ComPDF预览本地正常,部署后白屏:检查资源、路径和许可
前端
kiros_wang3 小时前
项目分包方案:模块拆分、跨模块组件与方法引用规范
前端
PedroQue993 小时前
unix-utils v0.2.0 发布:modal 全端统一,自绘窗口解决输入框难题
前端·uni-app
Csvn3 小时前
网络优化
前端
代码猎人3 小时前
前端怎么跟进生态新技术
前端
海阳皓辰网络科技有限公司3 小时前
Vue3 冷库货位选择器:三级联动、扫码带出与批次混放校验
前端·vue.js