操做Gitlab進行平常代碼推拉的過程當中,忽然遇到如標題所述異常,這篇博客記錄這個問題的解決辦法
對Gitlab私有倉庫進行代碼push操做,產生以下異常信息:html
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...nginx
查看官方issue後,能夠發現官方對此問題的解決方式基本是如下兩種方案:git
兩種方案操做成本都很昂貴,不可接受github
由於gitlab自己本身封裝了nginx、redis等工具,包括這些工具的配置也一併解決,因此在推代碼的過程當中,若是一次性提交的commit體積過大,超出max package的限定值,那麼可能會產生上述異常redis
而絕對不是nginx或者操做系統自己的問題app
但變動gitlab配置又是一件很是麻煩的事情,因此這裏換一種思路:咱們不依賴http協議進行上傳,換用ssh協議即可以繞開這個問題dom
新的解決辦法:變動提交方式爲ssh便可ssh
具體操做步驟:工具
這一步ssh key的生成和提交能夠參考個人這邊博客:GitHub——ssh免密登陸gitlab
在項目路徑下使用命令 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帳號名稱