admin管理员组文章数量:1618689
最近创建了一个新项目,初始化commit、push整个项目都没有问题。有一天突然间代码无法push到远程分支。困扰许久,查阅资料尝试了很多解决方法,归纳如下:
1.缓存过小引起,配置http.postBuffer
配置方式由两种。
第一种全局git配置,使用命令:
git config --global http.postBuffer 524288000
第二种:项目目录下.git文件夹中找到config配置文件,增加如下配置:
[http]
postBuffer = 524288000
[https]
postBuffer = 524288000
(此种情况针对文件较大项目有效,其他情况即使postbuffer值再大,也无用)
2.网络抖动引起
取消相关的网络限制,git做如下配置:
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
3.nginx代理限制请请求报文大小,修改nginx配置
配置client_max_body_size和client_body_buffer_size
gitlab安装默认会安装nginx做代理服务器,nginx配置文件目录为:/var/opt/gitlab/nginx/conf/gitlab-http.conf.
client_max_body_size:默认 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定.。0 表示不限制大小。
client_body_buffer_size:Nginx分配给请求数据的Buffer大小。
server {
listen *:9090;
server_name XXXX;
server_tokens off;
client_body_buffer_size 512k;
client_max_body_size 0;
ignore_invalid_headers off;
proxy_buffer_size 128k;
proxy_buffers 32 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 512k;
...
}
(此种方法仍然没有解决我的问题)
4.超大文件使用lfs提交
超大文件可采用此种方式提交。但lfs需要慎用,取消lfs很麻烦。当时我认真的检查了我的代码,并不存在大文件或者超大文件,但抱着一试的心态还是使用lfs提交。使用方法如下:
> git lfs install ##安装lfs
> git lfs track "*.osi" ##追踪大文件,示例中以osi未结尾的文件
> git add .gitattributes
设置完成后按照正常方式提交即可。切记如果项目文件不是很大,谨慎使用lfs,可以使用lfs的替代方案。
4.压缩级别和压缩速率引起,修改用户目录下.gitconfig配置文件
corepression用来设置压缩级别。0表示无压缩,-1为zlib默认压缩值,而1-9是速度大小集中的方案,最慢的是9。
[core]
compression = 1
[https]
postBuffer = 524288000
我的配置最初为-1,修改为1后成功push。
注:git配置文件优先级
–global 全局配置文件 ,配置文件位置:~/.gitconfig,优先级中
–system 系统配置文件,配置文件位置:$(prefix)/etc/gitconfig,优先级低
–local 特定配置文件,配置文件位置:$(git项目目录)/.git/config,优先级高
版权声明:本文标题:Gitlab push代码报错:RPC failed; curl 56 Recv failure: Connection was reset 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728783631a1173042.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论