使用SourceTree推送报错 "error: RPC failed; curl 55 Recv failure: Connection was reset"

1,424 阅读3分钟

本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力。

一,遇到问题

提交项目时停了到这个界面很长时间... 1.0

等来的却是报错,告诉我提交失败... 1.1 报错原文

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks commit -q -F C:\Users\25924\AppData\Local\Temp\jh2zoq3f.4ns git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags --set-upstream origin master:master POST git-receive-pack (88465735 bytes) error: RPC failed; curl 55 Recv failure: Connection was reset fatal: the remote end hung up unexpectedly fatal: the remote end hung up unexpectedly Pushing to http://172.28.60... Everything up-to-date 完成时带有错误,见上文。



之前一直好用的,突然不好用了,很困惑, , ,

二,尝试解决

上网查了下有几种解决方法,虽然没有解决我的问题,万一能解决你遇到的问题呢

1. 使用SSH密钥

打开方式:[工具 -> 选项 -> 一般 -> SSH客户端] 2.1 修改为OpenSSH的形式,然后上面选择你自己的SHH密钥。 2.2 PS:反正我这尝试了, 没有用. 我之前用的就是默认的, 现在两种方式选择哪一个都没有解决我遇到的这个问题。


2. 取消勾选代理服务器

打开方式:[工具 -> 选项 -> 网络]

2.3

PS:我原来就没有勾选啊,呜呜┭┮﹏┭┮...


3. 修改git配置加大httpBuffer

请看完此项再决定是否尝试此操作 在SourceTree打开命令行模式: 2.4

输入下面命令,查看自己的git配置:

git config -l

2.5

加大http.Buffer,执行下面命令后在使用 'git config -l' 命令看下, buff大小是否执行成功 ,然后再次尝试推送。

git config --global http.postBuffer 524288000

后来我发现: 这个加大buff的报错是这样的 : RPC failed; curl ==56== Recv failure: Connection was ==reset==. 而我遇到的问题报错使这样的, RPC failed; curl ==55== Send failure: Connection was ==aborted== 一个是链接被终止, 一个是连接被重置...


三,解决问题

使用命令行模式推送结果也是这样的, ==这说明并不是SourceTree的问题== 1.0

因为之前好用,这次提交推送莫名的不好用了, 那么我猜测有有可能是这次提交的内容有问题;

根据此推测我重新克隆了一个新的工程到本地,然后随便修改了一个文本, 然后暂存,推送一气呵成, 完全没有问题;

这次可以确定了, 就是我此次推送的内容有问题,我这次推送的出了正常的Unity工程逻辑修改, 还将Unity导出的Android工程进行了提交, 我怀疑就是这个工程内容提交时出现了问题。

上述使用SourceTree的寄存地址的GitLab, 而后我再码云上传同样的工程, 也是没有问题的。


初步结论:GitLab上传较大文件时,耗时较长,容易出现网络中断的情况,导致出现此情况。 解决方案一:上传较大文件时分批次上传。 解决方案二:使用国内代码托管码云

若有不同见解,欢迎您留言解惑;如果你也遇到了类似问题,不妨也在评论区留言吧,以便帮助更多的同学。