Github Git Submodule递归下载

最近需要下载rCore源代码进行学习,在下载的过程中,遇到Git仓库中的Submodule递归下载失败的问题。本文将记录如何解决此问题。
此处以rCore仓库作为示例进行演示:

(1) 使用镜像网站下载rCore:

# git clone https://github.com/rcore-os/rCore.git
# 在原下载网址后添加cnpmjs.org地址,转为从镜像网站下载
git clone https://github.com.cnpmjs.org/rcore-os/rCore.git

(2)修改submodule配置

进入下载后的rCore文件夹,可见文件目录如下所示:

打开.gitmodules文件,修改文件中的url为镜像网站地址,修改后如下所示:

(3)同步Submodule变更

git submodule sync

# 执行结果如下所示
# Synchronizing submodule url for 'rboot'
# Synchronizing submodule url for 'user'

(4)更新Submodule配置

此处需要注意,不要执行git submodule update --init --recursive命令。在Submodule中包含Submodule的情况下,递归下载很有可能会继续失败。此时执行git submodule update --init即可。

(5) 处理Submodule嵌套场景

在rCore/user文件夹下,嵌套有子Submodule,需要继续更新.gitmodules文件。改动效果如下所示:

(6) 继续同步Submodule

执行命令如下所示:

如果实际项目中嵌套层级更深,请不断执行(4)(5)(6)步骤。

至此,即完成rCore项目的Git Submodule文件递归下载。

posted @ 2021-11-12 16:21  从此寂静无声  阅读(2388)  评论(0编辑  收藏  举报