git clone报错RPC failed; curl 18 transfer closed with outstanding read data remaining

4 篇文章 0 订阅

问题

拉取码云代码时报错RPC failed; curl 18 transfer closed with outstanding read data remaining
在这里插入图片描述

排查

通过查看文件大小,是项目下面的.git太大了

描述

我们使用过 Git 的同学都知道,随着代码的更新迭代,仓库的体积越来越大。如果操作和使用都比较恰当的情况下,仓库体积不会突增的。但是如果使用不恰当的话,那就非常尴尬了,比如我们下面要说的这种情况,.git 这个隐藏目录特别大。

虽然 .git 这个隐藏目录并不算在代码体积之后,但是我们拉代码的时候,是需要拉下来的,因为里面包含之前的提交记录等信息。这就会导致,原本平和的心情变得焦躁了,因为下载速度变的很慢。

原因解释

当我们使用 git add 和 git commit 命令的过程中,Git 不知不觉就会帮我们创建出来了 blob 文件对象,然后更新 index 索引,再然后创建 tree 对象,最后创建出了 commit 对象。这些 commit 对象指向了顶层 tree 对象以及先前的 commit 对象。

而上述创建出来的对象,都以文件的方式保存在 .git/objects 目录下。所以,当我们在使用的过程中,提交了一个体积特别大的文件,就会被 Git 追踪记录在 .git/objects 文件夹下面。

此时,如果我们再次删除这个体积特别大的文件,其实 Git 只会记录了我们删除的这个操作,但并不会把文件从 .git 文件夹下面真正的删除,即 .git 文件夹完全不会变小。

解决方法

https://blog.csdn.net/lilizhou2008/article/details/123038737

解决

一、

设置postBuffer大小,git config --global http.postBuffer 2097152000结果并没有用

因后来clone成功没尝试后面方式

二、

先浅层clone,只会拉取最近的一次提交,浅层clone成功后,再完整拉取
2.1. 先浅层clone,只会拉取最近的一次提交

$ git clone --depth=1 http://xxx.git    

2.2. 浅层clone成功后,再完整拉取:

1) 先转换存储库为完整存储库,消除浅层存储库所施加的所有限制。
    $ git fetch --unshallow 
2) 命令修改.git文件夹内config文件的[remote "origin"]节的内容
    $ git remote set-branches origin '*'

#若命令无法修改,可直接修改.git文件夹内config文件的[remote "origin"]节的内容
修改前
[remote "origin"]
    url = https://xxx.com/abc/xxx.git
    fetch = +refs/heads/master:refs/remotes/origin/master
修改后
[remote "origin"]
    url = https://xxx.com/abc/xxx.git
    fetch = +refs/heads/*:refs/remotes/origin/*
以上步骤也可用命令代替
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

3.然后执行以下命令获取所有分支

git fetch -pv 或 $ git fetch -v
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当出现"error: RPC failed; curl 18 transfer closed with outstanding read data remaining"错误时,这通常是由于网络问题引起的。有几种解决方案可以尝试解决这个问题。首先,你可以尝试通过设置Git的低速限制和低速时间来解决问题,使用以下命令进行设置:git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999 \[2\]如果这种方式仍然无法解决问题,你可以尝试使用浅层clone的方式来下载代码仓库,并使用以下命令更新远程库到本地:git clone --depth=1 http://xxx.git git fetch --unshallow \[2\]另外,有人建议连接手机热点来下载代码,因为这可能是由于网络速度慢导致的问题。还有一些其他的解决方案,比如修改SSH设置等,你可以在Stack Overflow等网站上查找更多信息。\[3\]希望这些解决方案能够帮助你解决问题。 #### 引用[.reference_title] - *1* *2* [使用Git clone文件时,出现“error: RPC... curl 18 transfer closed with outstanding read data remaining](https://blog.csdn.net/qq_42494445/article/details/122190782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [完美解决“error rpc failed curl 18 transfer closed with outstanding read data remaining”问题【每天...](https://blog.csdn.net/diaodaa/article/details/106163888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值