解决github上大项目的git clone经常失败的问题

错误: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. imx6ull pro下载BSP文件以及配置工具链--repo问题 阅读详情
AI摘要

本文提供了几种有效的方法来加速从GitHub克隆项目的速度,包括更新Git版本、调整缓冲区大小、设置下载速度限制、使用SSH协议而非HTTPS、生成并配置RSA密钥、使用浅层克隆及后续更新完整历史记录等技巧。

      国内访问github的速度很慢且不稳定,当github上项目文件很多或者有几百M的大文件时,使用git clone下载到本地可能会经常失败,例如,报得比较常见的错误:

    RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received

    RPC failed; curl 18 transfer closed with outstanding read data remaining

    RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function

对于第一个错误,可能是git版本需要更新,删除重新安装一下:

    sudo apt-get purge git
    sudo apt-get install git

对于第二个错误,可能是缓冲区不够,加大缓冲区到500M #或者2G:

   git config --global http.postBuffer  524288000     #2147483648

做了上面的改动如果仍旧下载中途出错,下载速度很慢的话,可以试试设置:

   git config --global http.lowSpeedLimit 0
   git config --global http.lowSpeedTime 999999

如果依旧clone失败,则首先浅层clone,然后更新远程库到本地:

  git clone --depth=1 https://github.com/<repository_name>/<project_name>.git

  下载完后,然后获取所有历史记录:

   cd <project_name>

   git fetch --unshallow

     

       如果上面的方式仍然经常中断下载,那就得换个协议了,一般地,使用ssh协议下载比https下载稳定多了,虽然也不能保证每次都能顺利完成全部下载,但是成功的可能性比git clone https方式高多了。步骤:

   首先得生成个人的rsa key,Linux下执行命令:

    ssh-keygen -t rsa -C "<你注册github账号的邮箱>"    # e.g.,    abc@126.com   

    然后连续回车直至生成公钥和私钥文件,然后打开 ~/.ssh/id_rsa.pub,拷贝其内容,登录Github网站,到你自己的账号里的菜单里去设置:  Settings -> SSH and GPG keys 点 new SSH key后,将从id_rsa.pub文件里拷贝的内容贴到框里确认即可:

      

完后然后就可以执行

     git clone git@github.com:<repository_name>/<project_name>.git了

如果有时还是中断,可以先只clone一层后面再更新全部:

     git clone --depth=1 git@github.com:<repository_name>/<project_name>.git

下载完后,更新全部历史到本地:

    cd <project_name>

    git fetch --unshallow

对于使用秘钥文件登录的云服务器环境,可能实际登录时使用的普通用户,但是执行任何写操作时都得带上超级用户身份,例如Ubuntu下得使用sudo开头,否则报错权限不够:

ubuntu@ip172:/home/ubuntu$ git clone git@github.com:arld/tensorRT_cpp.git 
fatal: could not create work tree dir 'tensorRT_cpp': Permission denied

这时执行即使按上面那样生成并在github上配置了rsa key,使用ssh -T git@github.com命令也提示You've successfully authenticated,但是使用执行sudo ssh -T git@github.com或者sudo git clone命令时还是报错Permission denied:

ubuntu@ip172:/home/ubuntu$ ssh -T git@github.com
Hi arld! You've successfully authenticated, but GitHub does not provide shell access.

ubuntu@ip172:/home/ubuntu$ sudo ssh -T git@github.com
git@github.com: Permission denied (publickey).

这实际上是由于生成ras key时是使用的登录用户,生成在登录用户的home目录下的<home>/.ssh/下,需要把id_rsa和id_rsa.pub文件同时拷贝到/root/.ssh/下,这样才能解决上面的以sudo方式执行读取不到公钥的问题,因为执行命令时是root身份,默认需要从/root/.ssh/下读取rsa key文件!

ubuntu@ip172:/home/ubuntu$ sudo ls /root/.ssh
authorized_keys  known_hosts
ubuntu@ip172:/home/ubuntu$ sudo cp ~/.ssh/id_rsa* /root/.ssh/

再执行sudo ssh -T git@github.com就可以看到You've successfully authenticated了:

ubuntu@ip172:/home/ubuntu$ sudo ssh -T git@github.com
Hi arld! You've successfully authenticated, but GitHub does not provide shell access.

然后就可以使用 

sudo git clone git@github.com:<repository_name>/<project_name>.git了

以ssh方式下载任何公开或者已授权的reprository的代码了。

补充两组和上面无关但是经常可能用到的命令:

循环拉取远程仓库里的所有分支

git clone -b [branch-name] [git-url]  <local_repo_dir> #先拉取一个分支

cd <local_repo_dir>

git fetch --all                                                #获取remote差异

#执行下面的命令之一,拉取本库的所有分支

for i in `git branch -r`; do git checkout `basename $i` && git pull --all; done

或

for i in `git branch -r`; do git checkout `basename $i` && git reset --hard && git pull --all; done

只取指定commit 版本的代码:
git clone -b [branch-name] [git-url]
git reset --hard [commit-number]

OAI 4G搭建(二):git clone遇到的问题 问题一: error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. 查找相关资料, 尝试了以下方法: 修改git配置: 可以使用下面的代码查看自己的git配置 git config -l 可能是因为项目太大引发该错误, 因此需要增大缓存区 git config --global http.postBuffer 524288000 # httpBuffer加大 阅读详情

相关推荐

【问题探讨】浏览器可以访问github项目,但是git clone失败

浏览器可以访问github项目,但是git clone失败。先确认github.com是否能否ping通。

tom_wong666 9937

【超详细】Git Clone从入门到精通:解决下载慢/中断/权限问题(附实战避坑指南)

本文详细解析Git Clone的核心原理与实用技巧。首先解释Git Clone的本质是分布式仓库的完整复刻,而非简单文件下载,并介绍3个关键参数:自定义文件夹名、指定分支克隆和浅克隆。针对下载慢/中断问题,提供镜像源提速、断点续传和HTTPS/SSH认证解决方案。克隆完成后建议检查仓库完整性、切换开发分支并更新远程地址。最后分享批量克隆脚本和获取特定版本代码的高级技巧。全文涵盖从基础到进阶的Git Clone操作指南,帮助开发者高效使用这一核心功能。

民乐团扒谱机的博客 1100

git clone拉取GitHub项目失败/太慢的解决方法

(-----------------------------------------------欢迎各位网友补充-----------------------------------------------)因为国内经常访问不了Github,或者访问速度慢,导致国内机器无法部署,解决这些问题可以通以下国内镜像,来提高访问速度。是对原有网站内容的拷贝,与原有网站数据存放在不同的服务器上,可以加快网站的访问或下载速度。gitclone.com是一个提供下载缓存的代码下载网站,使用方法简单,只需要。

Fengdf666的博客 8399

error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was

git clone较大的工程产生如上报错,查资料应该是由于git默认缓存大小不足导致的。 解决办法,增大缓存空间: git config --global http.postBuffer 1048576000 后来又报错: error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function. 解决方法: 将https协议改为ssh 即将 git clone --branch v0.8.1 https://github.

GZKPeng的博客 4696

git svn clone 失败报错解决方法

将公司svn代码迁移至gitlab,git svn clone命令失败,报错信息如下:Can't load '/usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.dll' for module SVN::_Core: No such file or directory at……

辞晚的博客 1637

为什么你的git clone在Ubuntu上总是失败?深入解析TLS连接问题

本文深入分析了在Ubuntu系统上使用`git clone`命令时常见的TLS连接问题,特别是`gnutls_handshake`失败的原因。通过对比Ubuntu与其他Linux发行版的TLS实现差异,提供了从基础到高级的多层次解决方案,包括更新CA证书、切换SSL后端到OpenSSL、使用SSH协议替代HTTPS等,帮助开发者彻底解决git clone失败问题。

c2d3e4f的博客 789

【Git】error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was rece

目录 一. 问题 二. 解决 一. 问题 今天拉取代码,出现如下所示错误: error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed Failed during: git f...

DovSnier 专栏 3139

告别瞎猜!用通达信/同花顺这些资金流向函数,一眼看穿主力动向(附实战公式)

本文详细解析了通达信/同花顺资金流向函数的实战应用,帮助投资者精准识别主力动向。通过12个核心资金函数的组合逻辑,构建主力行为监控体系,避免未来函数陷阱,识别主力对倒行为,并提前捕捉异动。适合股票投资者提升自选股分析能力。

weixin_42522964的博客 1226

【git】用git下载github项目失败werning : Clone succeeded, but checkout failed.

werning:复制成功,但检出失败。

qq_43331089的博客 3623

OBD诊断协议:OBDⅡ (SAE J1979) 和 OBDonUDS (SAE J1979-2) 和ZEV OBD技术架构的详细对比

摘要:文章对比了2025年最新OBD技术标准(SAEJ1979系列)的三大架构:传统OBD-II(已淘汰)、OBDonUDS(燃油/混动车)和ZEVOBD(新能源车)。核心发现:1)OBDonUDS与ZEVOBD共享UDS协议栈和DoIP通信标准,仅应用层数据(DID/DTC)不同;2)物理层统一为CAN+以太网,支持远程诊断和OTA;3)诊断工具需同时兼容J1979-2/3数据库。技术演进呈现"协议统一化、数据专用化"趋势,2027年后所有新车将强制采用新标准。

m0_56482679的博客 2393

避坑指南:企业微信IP白名单设置失败的5种常见原因及解决方案

本文深入解析企业微信API调用中IP白名单设置失败的5种常见原因,包括动态公网IP变更、代理服务器导致的IP失真等,并提供针对性的解决方案。特别针对可信IP配置问题,详细介绍了诊断方法和Java代码示例,帮助企业开发者快速解决访问限制问题,确保API调用安全稳定。

weixin_29280657的博客 619

git clone 出现fatal: unable to access ‘https://github 类错误解决方法

git clone 遇到问题:fatal: unable to access 'https://github.comxxxxxxxxxxx': Failed to connect to xxxxxxxxxxxxx 将命令行里的http改为git重新执行。

gbz3300255的博客 23万+

矩阵束(Matrix Pencil)入门:从通信系统到控制理论,它为何是建模利器?

本文深入探讨矩阵束(Matrix Pencil)在通信系统与控制理论中的关键作用,揭示其作为复杂系统建模利器的独特价值。从MIMO系统的多径干扰分析到电力系统稳定性判据,矩阵束通过`A-λB`方程求解提供精准建模方案,显著提升5G通信和工业控制等领域的性能表现。

weixin_30134145的博客 359

【已解决】使用 GitHub / hugging face进行 git clone 失败问题总结

由于种种原因,国内直接从 GitHub 克隆仓库的速度可能非常慢容易失败,影响开发效率。本文将分享几种加速 git clone 的方法,显著提升克隆速度。

qq_53826699的博客 2489

永磁同步电机FOC控制实战:如何用线性死区补偿解决低速抖动问题(附Matlab仿真代码)

本文详细介绍了永磁同步电机FOC控制中线性死区补偿技术的工程实现方法,有效解决低速抖动问题。通过Matlab/Simulink仿真验证,该方案可将转矩脉动降低70%以上,显著提升系统稳定性。文章包含完整的数学模型构建、Simulink实现步骤及参数整定技巧,为工程师提供实用解决方案。

weixin_30872499的博客 154

电动汽车远程监控与诊断软件:BMW ConnectedDrive EV远程监控二次开发_7.数据安全与隐私保护

数据加密是保护数据安全的重要手段之一。在电动汽车远程监控与诊断软件中,加密技术可以确保数据在传输过程中的安全性和完整性。常见的加密技术包括对称加密和非对称加密。

zhubeibei168的博客 884

能访问github网页但git clone不下来

通过自己的方式已经能够访问Google和github(这得自己解决),但是git clone的时候还是不行

诺有缸的高飞鸟的博客 1万+

万字长文,YOLOv8 yaml 文件解析 | 一文搞定 YOLOv8 分类任务,检测任务,分割任务,关键点任务

YOLOv8 yaml 文件解析 | 一文搞定 YOLOv8 分类任务,检测任务,分割任务,关键点任务

Coding... 1万+

解决Git Clone失败,浏览器可以访问github项目,但是git clone失败

【代码】解决Git Clone失败,浏览器可以访问github项目,但是git clone失败。

scy的技术博客 6053

倍福控制第三方伺服走CSV模式--以汇川伺服为例

在使用TwinCAT软件控制标准CiA402协议的EtherCAT伺服时使用TwinCAT软件NC自带的运动控制指令控制伺服,此时伺服驱动器一般工作在CSP/CSV/CST模式。最常见伺服驱动器工作在CSP模式,轨迹规划运行在TwinCAT软件,位置环速度环电流环运行在伺服驱动器中。该模式下速度波动较大,需要极度平稳的速度需要采用CSV模式。本文讲述的是伺服驱动器工作在CSV模式,此时轨迹规划和位置环均运行在TwinCAT软件,速度环电流环运行在伺服驱动器中。为了简化文字描述,本文采用图文结合的方式介绍伺服

weixin_41883890的博客 4848

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

解决git clone报错的多个问题

git clone报错的多个问题: - fatal: Could not read from remote repository - kex_exchange_identification: Connection closed by remote host - ssh_dispatch_run_fatal: Connection to xx.xx.xx.xx port 22: Operation timed out

欢迎来到我的博客呐~ github: https://github.com/Penguin-zlh 7228

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

一分钟解决连接git/github失败问题!亲测可行!

连接git/github失败问题Git连接出错镜像法简单粗暴法Github访问不上找到解析时间最短的地址修改配置文件刷新配置 Git连接出错 完成基础配置后,始终不能进行git push/git clone,ping github.com 总是显示往 127.0.0.1 发送测试包 镜像法 关于解决git clone问题可以直接使用中国镜像网站地址来下载,速度快上很多 简单粗暴法 正确姿势是给 git 命令开代理,代理完之后可以也访问github git config --global http

yw99999的博客 6万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Git——git clone速度加快方法,并解决下载失败问题

使用国内镜像网站 可以发现,使用国内镜像站速度飞快! 目前已知Github国内镜像网站有github.com.cnpmjs.org(亲测这个访问速度较快)和git.sdut.me。你可以根据你对这两个网站的访问速度快慢,选择其中一个即可。接下来只需要在clone某个项目的时候将github.com替换为github.com.cnpmjs.org即可。如下例: github.com: git clone https://github.com/xmy0916/EuroTruckSelfDriver.git

Irving.Gao的博客 1万+

mac电脑git clone失败解决方法

mac电脑从GitHub克隆C++第三方管理工具vcpkg失败解决过程 为了安装vcpkg包,在mac终端中输入命令: git clone https://github.com/Microsoft/vcpkg 然后下载了一会后出错: 原因是因为curl的postBuffer的默认值太小,我们需要调整它的大小,在终端重新配置大小,这里我们把postBuffer的值配置成500M。可以根据自己需要...

天天看天天的博客 8277

用git下载github项目失败werning : Clone succeeded, but checkout failed.

用git下载github上的大项目时,本地空间也足够,也安装LFS了,可还没有下载完就失败了,如下所示: werning : Clone succeeded, but checkout failed. you can inspect what was checked out with ' git status' and retry the checkout with 'git checkout -f HEAD werning:复制成功,但检出失败 您可以检查“ git status”中已签出的内容 然

李德瑜_博客 1万+

解决一下git clone失败的问题

然后我git clone http://github-private:github_pat_11A6PKOQI0INufjeDoJTUXUIY2IF62Vblnvn@github.com。git clone http://token名字:token的值@github.com/用户名/仓库.git。然后我们git clone git@github.com:lx1/sun01.git。然后我又用了我同事的token试了一下,依旧不行,我真的裂开。于是我用我同事(创建者的token)试了一下,终于成功了。

m0_57057282的博客 3210
上一篇: Xavier NX上安装Deepstream导致NX不断的重启
下一篇: 如何在vscode下将C++代码格式化成Google Style
Arnold-FY-Chen
博客等级 码龄19年 925粉丝 204原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值