背景:工程从svn迁移到gitlab时,执行 git push -u origin --all命令,将从svn down 下来的工程push到gitlab,此时报错:error: RPC failed; result=22, HTTP code = 413
排查:网上搜索,参考下列文章:
(1)http://blog.csdn.net/dongwuming/article/details/49333933
(2)https://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413
(3)http://blog.csdn.net/cy309173854/article/details/52621180
根据上面文章知道,错误原因是 走http协议上传,上传文件过大,超过了限制;
解决办法有两种:一种治标,一种治本
治标:上传协议调整为 ssh 或 git ,不走http协议
治本:调整 http协议上传限制,这里有两个地方限制,分别是:
(1)git http 上传buffer 大小,可使用 git config http.poshBuffer 524288000 命令来调整buffer大小
(2)服务器端 nginx 限制上传buffer 大小:调整方法 修改nginx.conf 中 client_max_body_size 的值
http {
...
client_max_body_size 500M;
...
}
解决:
(1)先执行了git config http.poshBuffer 524288000,上传还是失败;
(2)杨老师删掉 nginx.conf 中 client_max_body_size 配置,上传成功;
备注:不知道杨老师删除的是gitlab服务器上nginx限制,还是svn down 下来的工程所在服务器的nginx,不知道杨老师还有没有其他什么操作