操做Gitlab进行平常代码推拉的过程当中,忽然遇到如标题所述异常,这篇博客记录这个问题的解决办法html
对Gitlab私有仓库进行代码push操做,产生以下异常信息:nginx
Counting objects: 875, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (523/523), done.
Writing objects: 100% (875/875), 42.94 MiB | 9.72 MiB/s, done.
Total 875 (delta 206), reused 2 (delta 0)
error: RPC failed; result=22, HTTP code = 500
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly复制代码
Gitlab官方对此issue的反馈信息:https://gitlab.com/gitlab-org/gitlab-ce/issues/12629git
查看官方issue后,能够发现官方对此问题的解决方式基本是如下两种方案:github
两种方案操做成本都很昂贵,不可接受redis
由于gitlab自己本身封装了nginx、redis等工具,包括这些工具的配置也一并解决,因此在推代码的过程当中,若是一次性提交的commit体积过大,超出max package的限定值,那么可能会产生上述异常app
而绝对不是nginx或者操做系统自己的问题dom
但变动gitlab配置又是一件很是麻烦的事情,因此这里换一种思路:咱们不依赖http协议进行上传,换用ssh协议即可以绕开这个问题ssh
新的解决办法:变动提交方式为ssh便可工具
具体操做步骤:gitlab
这一步ssh key的生成和提交能够参考个人这边博客:[GitHub——ssh免密登陆](https://www.liumapp.com/articles/2018/08/26/1535294584243.html)复制代码
在项目路径下使用命令 git remote -v复制代码
若是是以http/https形式上传代码的话,那么地址格式相似于:gitlab http://${your domain name}/liumapp/${your project name}.git (fetch)复制代码
咱们要作的,就是把它变动为以ssh形式进行上传,要将地址变动为相似:gitlab git@github.com:liumapp/${your project name}.git复制代码
操做命令 git remote set-url gitlab git@${your domain name}:liumapp/${your project name}.git复制代码
顺便一提,上面出现的liumapp请自行替换为本身的gitlab帐号名称复制代码
复制代码