从GitHub完整克隆项目及其依赖项子模块(submodule,recursive)

环境

WIN10

GIT 2.31.1

示例项目:FreeRTOS · GitHub

日期:2023-1-5 

常规操作

从GitHub上克隆项目的常规操作

# 常规
git clone git@github.com:FreeRTOS/FreeRTOS.git

# 递归克隆
git clone --recursive git@github.com:FreeRTOS/FreeRTOS.git

# 国内镜像源克隆 https://www.kgithub.com
git clone --recursive git@kgithub.com:FreeRTOS/FreeRTOS.git

当某些项目仓具有很多子模块时,通常使用git clone --recursive克隆项目(git clone前建议关闭防火墙),因为GitHub在大多时候被墙的状态,这种方式下载会很慢甚至超时失败,所以使用国内镜像源是一个不错的方式。

当前有效镜像源[https://www.kgithub.com]替换github.com,可以很快速完整的将项目快速克隆下来。

子模块下载

会发现使用--recursive下载非常缓慢且大概率无法完整下载,此时我们可以更改.gitmodules文件内url项(.git目录下的config文件内也有相关内容,submodule sync同步后的目的地),替换成国内镜像源来稳定快速下载,如下:

# 源
[submodule "FreeRTOS/Source"] # 子模块
	path = FreeRTOS/Source # 子模块克隆路径
	url = https://github.com:FreeRTOS/FreeRTOS-Kernel.git # 子模块克隆目标源
[submodule "FreeRTOS/Test/CMock/CMock"]
	path = FreeRTOS/Test/CMock/CMock
	url = https://github.com:ThrowTheSwitch/CMock.git
# 替换后
[submodule "FreeRTOS/Source"]
	path = FreeRTOS/Source
	# url = git@kgithub.com:FreeRTOS/FreeRTOS-Kernel.git # 替换成镜像源命令行形式路径
    url = https://kgithub.com:FreeRTOS/FreeRTOS-Kernel.git # 替换成镜像源目标路径
[submodule "FreeRTOS/Test/CMock/CMock"]
	path = FreeRTOS/Test/CMock/CMock
	url = git@kgithub.com:ThrowTheSwitch/CMock.git

替换成镜像源路径,通常环境没问题的话替换成https://形式的镜像源路径(使用kgithub.com替换github.com即可),如果遇到failed的话,可以使用命令行形式尝试,实测是oooooook的。

使用kgithub.com镜像源,建议配置好git’s config文件,在用户目录.ssh文件夹下,如果还没有该文件自建一个即可,如下

Host kgithub.com
Hostname ssh.github.com
Port 443
User git

更改.gitmodules文件后,在.gitmodules文件同级目录使用submodule命令同步并更新文件

# 同步.submodulesa文件
git submodule sync
# 更新或下载子模块
git submodule update --init --recursive

同理,如果在子模块中还有依赖项既子模块的子模块,同样重复递归上述操作即可。

参考

git clone —recursive 快速高效下载方法 - 知乎

 【github】 加速国内 Github 访问,下载,的9种方案! - 老杨的博客。 - 博客园Git报错 into submodule path failed,修改子模块地址解决_常城的博客-CSDN博客_git 修改子模块地址

GitHub: Let’s build from here · GitHub 

 http://t.csdn.cn/KVB5Xgithub 配置了公钥依旧提示git@github.com‘s password: Permission denied, please try again. 的解决办法_XeonYu的博客-CSDN博客

用户对问题“致命:无法访问<link> getaddrinfo()线程启动失败”的回答 - 问答 - 腾讯云开发者社区-腾讯云 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值