当前位置: 首页 > 工具软件 > GnuTLS > 使用案例 >

[git]解决GnuTLS recv error (-9) 方案验证有效

杨凯旋
2023-12-01

说明

场景: ubuntu系统自带的git 直接拉去https://gitee.com仓库时,如果仓库过大,经常下载到一半出现GnuTLS报错,网上查阅并没有太多有价值东西,都是各处复制粘贴,甚至有奇奇怪怪的教程,比如重装git????? 我一脸的疑惑。

git所有配置都会存放在用户目录下的**.gitconfig**文件里,当前我的配置如下,但是并没有什么卵用,重装为最新的也不能解决

[safe]
	directory = /mnt/d/workspace/openharmony/device_board_bearpi
[user]
	name = XXXlus
	email = XXX@outlook.com
[credential]
	helper = store
[http]
	postBuffer = 524288000
	sslVerify = false
	lowSpeedLimit = 0
[https]
	postBuffer = 524288000
	sslVerify = false

[core]
	compression = -1

更改buffer 也许在某些场景下有用,但是在当前 错误码(-9)是没用的,

有效的解决方案

根据多方资料查证,有人说更换GnuTLS,原因在于他的问题,感觉这个是说的方向是对的,也有人说https更换成git 但是我尝试直接无效,那么从这个方向看,那就是想办法绕过GnuTLS的方向。
已知gitee.com拉取openharmony/docs.git代码方式提供两种

  1. git clone --depth=1 https://gitee.com/openharmony/docs.git
  2. git clone --depth=1 git@gitee.com:openharmony/docs.git

当前使用 https 会报错,那就使用 第二种方式拉取资料

  • 创建创建gitee.com账号并登录
  • 客户端生成 sshkey,并将 ssh公钥 加入到gitee账户下:设置->安全设置->ssh公钥
  • ssh -T git@gitee.com 命令测试是否配置成功
  • 使用第二种方式命令拉取代码便不再报错

gitee.com上配置ssh官方资料地址 https://gitee.com/help/articles/4181

最后

我在成功克隆到docs.git后 又把之前所有无效的配置全部恢复默认,仍然能够正常克隆,证实此方案的有效性。
.gitconfig文件移除众多无效配置

[safe]
	directory = /mnt/d/workspace/openharmony/device_board_bearpi
[user]
	name = XXXlus
	email = XXX@outlook.com
[credential]
	helper = store

简单介绍
safe: git本地地址,写入到这里的才能在文件夹中使用git命令
user: 用户的个人信息配置,必要的 可以与网站不一致
credential: 启用密码保存

 类似资料: