一、问题分析
背景: 在本地修改了大量的代码并commit后,最后一次性push时,出现错误。
分析: 从报错的信息来看,貌似是和远程Git连接出现了问题,因此,可以从以下三个角度来分析:
- 本地和远程Git仓库连接有问题,由于刚提交成功过,可以排除掉;
- 本地和远程Git仓库的数据传输速度慢,在commit中数据过大情况下,会导致连接超时,这是有可能的;
- 本地的commit内容比较多,无法一次性将内容push上去,是有可能。
通过去Git官网查询可知, 以下参数可以解决数据传输大小和速度等问题:
http.postBuffer: 指定在Git发送HTTP请求时使用的缓冲区大小
http.lowSpeedLimit: 设置Git在进行HTTP传输时的最低传输速度限制
http.lowSpeedTime:设置Git在进行HTTP传输时的最低传输时间限制
二、解决方案
以下所有操作均在IDEA的终端Terminal上进行。
2.1 调整缓冲区的大小
第一种方式: 直接在IDEA终端内进行:
git config --global http.postBuffer 1024288000【单位:字节】
git config http.postBuffer 1024288000【单位字节】
其中--global表示对当前用户的所有Git仓库都适用; 否则,仅对当前用户的当前Git仓库适用
使用java git config --list
命令查看具体的配置情况为:使用:wq退出命令
第二种方式: 直接去当前项目下的.git文件夹中找到config文件进行修改。
[remote "origin"]
url = https://gitlab05.dtdream.com/IDST/DTInsight/TagsStudio/TagsStudio.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[http]
sslVerify = false
postBuffer = 1024288000 --直接修改
修改完之后,重新进行push,如果还失败,可以考虑加大postBuffer。如果还不行,考虑下面的方案
2.2 调整传输速度和时间的大小
git config --global http.lowSpeedTime 999999 【单位:秒】:设置为999999秒意味着几乎没有时间限制
git config --global http.lowSpeedLimit 0:设置为0表示没有速度限制
其中java--global
表示对所有的Git仓库都起作用,最后重新推送。
2.3 撤销commit改为批量循环commit+push
IDEA中有个undo commit按钮, 选择当前的大commit进行undo(回滚),会将commit的内容重新放回到暂存区【**注意:**以前要提前拷贝个分支,防止误操作,导致修改的内容丢失】文章来源:https://www.toymoban.com/news/detail-841127.html
文章来源地址https://www.toymoban.com/news/detail-841127.html
三、总结
- 从报错信息入手,大胆猜测,多上网查看解决方案;
- 提前做好数据的备份,防止解决的过程中造成数据丢失。
到了这里,关于Git报错: error: RPC failed; curl 56 HTTP/2 stream 5 was reset; send-pack: unexpected disconnect的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!