有些时候github上的A公司代码里面又套用了github上的B公司代码,这个时候单纯的git clone是不行的了,下载不全,只能下载到A公司的代码,再git clone之后需要git submodlue --init才能把A公司所需的B公司模块的代码下载完整。
一般来说这个错误是加速器不给力的原因。
首先找到git clone下载好的包,到该目录下去找一个.gitmodules文件。打开:
我们要下载的所有submodule模块都在这里面,下载失败是因为无法连接到这个网络。
(思考:其实我很疑惑,git clone能访问Github但是git submodule --init就不能访问,很奇怪)
我们把里面的网址url进行替换,去码云上找别人在github上面拉去下来的模块网址。
比如说:我要用到url = https://github.com/openssl/openssl,可以在码云上面搜索openssl,要注意检查是否和GIthub上面的内容一样,或者就自己建一个仓库,**一定要记得仓库设置为公开**,要不然都等到南村群童欺你老无力了你git submodule还是运行不出来。最后把得到的网址
(https://gitee.com/hanxinwu/openssl.git)替换掉你的gitmodule的原有网址。
重点:把原url替换成码云里面别人fork好的项目url,找不到就自己fork。
替换完后,保存文件,在文件目录下运行git submodule sync命令同步url
最后执行git submodule update --init
ok,搞定。
当然这方法很明显其实比较蠢,费时费力,如果有读者能把笔者思考的问题解决或者说有更好的方法解决这个问题,也欢迎在下面交流讨论,给其他遇到这个问题的读者提供思路。
参考:git submodule update --init 失败解决办法
版权归原作者 韩xinwu 所有, 如有侵权,请联系我们删除。