git clone时候,如果遇到项目里有子模块通常会在下载时加上--recursive参数,一起下载。但是子模块较多,体积较大时大概率都会下载失败。

好在可以通过一些小技巧,下载国内镜像,进行加速。但是下载项目时,只是主体是国内的镜像,子模块仍然下载很慢。首先解决获取国内镜像的问题。有三个方法:

  • 在码云 Gitee 上搜索下载

    在码云上搜索同样的项目,然后用码云git 的地址下载。

  • 加上.cnpmjs.org后缀

    在地址后面加上后缀,如git clone https://github.com.cnpmjs.org/riscv/riscv-binutils-gdb.git

  • 使用油猴脚本获取镜像地址

    如果你有油猴插件可以去greasyfork搜索安装GitHub镜像访问,加速下载这个脚本,刷新GitHub仓库界面就会多出几个镜像地址,一般下载都会快好几倍。

    Responsive Image

再来解决子模块下载速度慢的问题,下载项目时,先不加--recursive参数,只下载项目的本题。

下载完后找到.gitmodules文件,这是一个隐藏文件,需要显示隐藏文件,Linux 下使用快捷键Ctrl+H。用vim打开后可以得到:

Responsive Image

这个文件里写入了子模块的下载信息,url就是下载地址。我们把所有子模块中的 URL 地址同样加上.cnpmjs.org后缀。或者使用上述三种方式得到的镜像地址。

然后利用git submodule sync更新子项目对应的url

最后再git submodule update --init --recursive,即可快速下载所有子项目。