前言

最近小组成员跟我说,他git提交不了代码。我问了下起因,他说他代码一提交就会报

error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413fatal: the remote end hung up unexpectedlyfatal: the remote end hung up unexpectedlyEverything up-to-date

而后他跟我说他百度几种办法,都不论用。下文列下他百度进去的计划

计划一:批改本地git postbuffer大小
git config --global http.postbuffer 524288000
计划二:批改我的项目.git/config文件,增加如下内容
[http]      postBuffer = 524288000
计划三:用治理账号在gitlab中的Account and limit加大Maximum attachment size (MB)和Maximum push size (MB)

能够参考该链接
https://blog.csdn.net/techfield/article/details/70198077
因为小伙伴不是管理员,前面我尝试了该计划,不论用

问题复盘

1、先看git push抛出来的问题

error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413

对咱们无效的信息,预计就是413这个状态码,咱们能够先从这个状态码动手

这个状态码的含意是

413 Request Entity Too Large
服务器回绝解决以后申请,因为该申请提交的实体数据大小超过了服务器违心或者可能解决的范畴。此种状况下,服务器能够敞开连贯免得客户端持续发送此申请。

注: 查看http状态码信息,能够通过https://www.php.cn/web/web-http.html进行查阅

由状态码的含意,咱们能够得出上传的代码可能过大。于是我让小伙伴看下,他上传的代码量有多少,好家伙,一共有4,50M的大小

2、解决方案

计划一:代码进行分批上传,不要一次性上传

小伙伴按这个计划果然解决了问题,然而他说这样好麻烦,总不能当前每次都要分批上传,这样提交代码的效率很低

计划二:增大http形式上传的大小

这个计划就是最开始的设置postbuffer,但问题就是不论用。前面就狐疑说是不是因为配置域名的起因,于是我就采纳内网ip的形式间接去push代码,后果居然能够了。

接着去ping下gitlab的域名,发现那个ip不是gitlab的内网ip,当然ping进去的也可能是外网ip,于是我就把ping进去的ip通过百度一下,显示该ip是本地局域网。

而后很天然的想到我的项目的gitlab是不是配置了代理,接着就去问搭这个gitlab的前共事。果然他之前搭建这套gitlab采纳nginx做了代理,于是衍生出了第三种计划

计划三:批改nginx配置

在http的server节点中增加client_max_body_size,形如下

http: {    server: {        client_max_body_size: 200m;    }}
计划四:用ssh提交代码

配置ssh,能够参考如下链接
https://blog.csdn.net/qq_42832446/article/details/105533733