环境
WIN10
GIT 2.31.1
示例项目:FreeRTOS · GitHub
日期:2023-1-5
常规操作
从GitHub上克隆项目的常规操作
# 常规
git clone [email protected]:FreeRTOS/FreeRTOS.git
# 递归克隆
git clone --recursive [email protected]:FreeRTOS/FreeRTOS.git
# 国内镜像源克隆 https://www.kgithub.com
git clone --recursive [email protected]: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 = [email protected]:FreeRTOS/FreeRTOS-Kernel.git # 替换成镜像源命令行形式路径
url = https://kgithub.com:FreeRTOS/FreeRTOS-Kernel.git # 替换成镜像源目标路径
[submodule "FreeRTOS/Test/CMock/CMock"]
path = FreeRTOS/Test/CMock/CMock
url = [email protected]: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博客
用户对问题“致命:无法访问 getaddrinfo()线程启动失败”的回答 - 问答 - 腾讯云开发者社区-腾讯云
版权归原作者 叔子衿 所有, 如有侵权,请联系我们删除。