惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
爱范儿
爱范儿
小众软件
小众软件
K
Kaspersky official blog
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
V
Vulnerabilities – Threatpost
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
C
Check Point Blog
S
Schneier on Security
P
Palo Alto Networks Blog
IT之家
IT之家
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
Project Zero
Project Zero
Y
Y Combinator Blog
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
S
Securelist
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理

博客园 - DoubleLi

Git 自动添加 git 子模块(.gitmodules) 如何在gitlab中使用子模块 CMake应用:模块化及库依赖 Qt Create多核编译配置 C++程序的发布部署方式及缺失依赖库dll的解决方法 VS+QT生成的exe文件所依赖的dll文件和路径 vs如何发布exe并附带动态链接库dll 详解 Visual Studio、MSVC、编译器版本,看完就不再困惑啦! MobaXterm使sftp目录与terminal目录同步 从GPS/北斗模块中获取经纬度 Loguru:Python 日志终极解决方案 VsCode C++ namespace has no member错误 VS Code 提示 namespace “std“ has no member “***“ 解决方法 windows平台中使用vscode远程连接linux进行c++开发配置教程(内容详细适合小白)-2021-3-30 vscode C++ 自动补全失效 从零开始的vscode安装及环境配置教程(C/C++)(Windows系统) VScode 完全卸载并清除原有配置 vscode中 “std“ 没有成员 “round“C/C++(135) vscode 提示 namespace “std“ has no member “mutex“ 的解决方法
聊聊git push到远程服务器出现RPC failed问题
DoubleLi · 2024-10-11 · via 博客园 - DoubleLi

前言

最近小组成员跟我说,他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