当前位置:   article > 正文

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

git clone 递归

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

git clone git地址
  • 1

下载好以后,打开里面的文件.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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

 git clone --recursive 仓库名
  • 1

但是经常会提示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
  • 1

注意,每次下载完以后,进入下载好的子模块文件夹下,看看有没有新的.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
  • 1

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

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

在这里插入图片描述

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

git submodule update --init --recursive
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/666973
推荐阅读
相关标签
  

闽ICP备14008679号