首页 > 其他分享 >使用git clone --recursive克隆,由于网络原因失败

使用git clone --recursive克隆,由于网络原因失败

时间:2024-01-22 10:11:42浏览次数:25  
标签:git recursive -- clone 文件夹 模块 下载

问题

下载 Github 上某些代码仓库时,如果代码仓库中具有很多子模块,正常使用git clone —-recursive下载方式,发现:下载缓慢并且子模块有极大概率不能完全下载。

在此通过一个例子,来展示如何快速高效的下载代码库文件。该方法具有普适性。

欲下载一代码库文件,原始下载方法为:git clone --recursive https://github.com/MarvinChung/Orbeez-SLAM.git

 

详细解决方法

    • 执行:git clone https://github.com/MarvinChung/Orbeez-SLAM.git。先不对子模块进行下载,故不需要参数--recursive;如果需要加速下载,需要对下载的链接进行一点小的修改,需要将上述的代码仓库链接github.com部分替换成hub.fastgit.xyz,该网址是 Github 镜像,若能命中,下载速度会非常快,若不能命中,则使用原始 github 链接或其他下载加速方式下载。

      注1:下载结束之后,得到文件夹 Orbeez-SLAM。对于该仓库的代码,其子模块的代码都放在文件夹 third_party 中,在文件夹 third_party 中是有若干个文件夹,但这些文件夹都是空文件夹,现在就需要将这些文件夹重新下载好。
      注2:在文件夹 Orbeez-SLAM 中有一个文件 .gitmodules(Ctrl+h 显示.xx文件)。该文件是存储子模块名称(例如:[submodule "Thirdparty/g2o"] )、子模块在本地仓库位置(例如:path = Thirdparty/g2o)和子模块下载地址(例如:url = https://github.com/RainerKuemmerle/g2o)这三个信息的文件,如果有需要也可以修改子模块下载地址。

    • 执行:git submodule sync(修改过子模块下载地址时),更新子模块下载地址(需要在与.gitmodules文件同级目录中)。
    • 执行:git submodule update --init --recursive,更新子模块或下载子模块(位于与上述相同的文件夹中)。

至此,代码下载完成。

上述方法可以递归使用,直到代码库文件夹中所有子模块下载完成。

 

原文链接:https://zhuanlan.zhihu.com/p/361136073 

标签:git,recursive,--,clone,文件夹,模块,下载
From: https://www.cnblogs.com/jangchuan/p/17979376

相关文章