git clone --recursive递归下载github出现443子模块无权限下载的解决方法

16 篇文章 2 订阅
5 篇文章 0 订阅

当你发现用git clone下载的代码里面有文件 .gitmodules 的时候,说明里面还包含了子git库
就需要递归下载
例如执行了下面指令以后

git clone git地址

下载好以后,打开里面的文件.gitmodules
会看到文件有如下格式的子模块

  • submodule 代表子模名字
  • path代表存储文件夹位置
  • url代表git库下载地址
[submodule "vendor/dm.pl"]
	path = vendor/dm.pl
	url = https://github.com/theos/dm.pl.git
[submodule "vendor/include"]
	path = vendor/include
	url = https://github.com/theos/headers.git
[submodule "vendor/lib"]
	path = vendor/lib
	url = https://github.com/theos/lib.git
[submodule "vendor/logos"]
	path = vendor/logos
	url = https://github.com/theos/logos.git
[submodule "vendor/nic"]
	path = vendor/nic
	url = https://github.com/theos/nic.git
[submodule "vendor/templates"]
	path = vendor/templates
	url = https://github.com/theos/templates.git

这个时候我们可以使用递归下载,会把里面的文件.gitmodules的子模块也下载好

 git clone --recursive 仓库名

但是经常会提示xxx子模块没有权限下载,如下:

fatal: unable to access ‘https://github.com/xxx.git/’: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

这是,cd进入已经下好的主模块目录中,然后执行下载子模块命令:

git submodule update --init --recursive

注意,每次下载完以后,进入下载好的子模块文件夹下,看看有没有新的.gitmodules 子模块文件,如果有,还要cd 进去,然后重新执行命令git submodule update --init --recursive .相当于手动的递归下载子模块
如果执行这条命令还是提示 443没有权限,也可以手动cd 到子模块文件夹下,然后执行git clone 子模块的git地址
例如,我上面的.gitmodules文件中第一个子模块叫vendor/dm.pl,这个模块的文件夹,在安装主模块的时候,已经创建好了文件夹,我只需要如下图cd进这个文件夹,然后执行git clone +url 就行了,例如这个例子就是: git clone https://github.com/theos/dm.pl.git

在这里插入图片描述
如果发现 git clone 还不好使,就直接打开这个网址,打开github网页,点击他的code->ssh,复制里面的地址:
例如下图的例子是复制:git@github.com:theos/dm.pl.git
在这里插入图片描述
然后:

git clone git@github.com:theos/dm.pl.git

发现这个git clone git@开头的好使了,可以下载,如下图:
在这里插入图片描述
然后可以打开打开子模块的文件把里面所有的url都用网页打开,然后分别到对应的目录里面git clone安装.
或者像下面这种修改 子模块的文件,然后再主模块里面一起安装.

这个就是问题所在.把这个地址,复制了,然后回到主模块下,修改里面的url
把里面所有的url https开头的都用网页打开,然后在里面找到code-ssh里的git@开头的地址,覆盖掉之前文件里的url,保存文件,如下图:

在这里插入图片描述

然后重新cd 到主模块的目录下,执行安装子模块命令:

git submodule update --init --recursive
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值