前言
最近小组成员跟我说,他 git 提交不了代码。我问了下起因,他说他代码一提交就会报
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Everything 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