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
相关推荐
渣波1 分钟前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript
今日无bug3 分钟前
列表转树:一道题搞懂 HashMap 在算法里的价值
前端·数据结构
用户921080262863 分钟前
5. 数据大屏实时通信第一步:为什么选择 WebSocket,以及如何接入 Socket.IO
前端
岁月留痕1684 分钟前
17 实战项目二:实现“日记”项目多页面管理
前端
李顿波5 分钟前
Chrome 插件弹窗一直停留在初始的小尺寸 —— 你看到的小方块
前端·javascript·chrome
悟空瞎说6 分钟前
Cesium 与 Three.js 融合实战:在数字地球上渲染自定义 3D 场景
前端
渣波8 分钟前
React 移动端首页架构实战:从并发请求到防御性编程的深度解析
前端·javascript
a11177615 分钟前
原生 Markdown 阅读与编辑器 开源项目
前端·开源·软件
laity1715 分钟前
python发光表白爱心(从零到一实现)
前端·后端
程序员爱钓鱼24 分钟前
Rust impl详解:为Struct定义方法与关联函数
前端·后端·rust