环境说明:远程仓库为gitlab,centos系统
1.问题描述:
最近在使用Git clone远程仓库代码到本地时,出现如下错误:
<code class="hljs r has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">git.exe clone --progress -v <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"http://192.168.13.21/bda/ma_bang_wang.git"</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"C:\Users\Administrator\Desktop\ma_bang_wang"</span>
Cloning into <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'C:\Users\Administrator\Desktop\ma_bang_wang'</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>
POST git-upload-pack (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">250</span> bytes)
remote: 对象计数中: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4972</span>, 完成.
remote: 压缩对象中: <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>% (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3565</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3565</span>), 完成.
fatal: early EOF
fatal: The remote end hung up unexpectedly
fatal: index-pack failed
error: RPC failed; result=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">18</span>, HTTP code = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">200</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>
2.问题分析:
当我们从git仓库clone或者push大量数据时(如1G),clone或者push时间会超过默认值为30s。
错误日志在gitlab安装目录下,如下是我的日志路径:
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">/home/git/gitlab/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">log</span>/unicorn.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">stderr</span>.<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">log</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
日志信息:
3.解决办法:
修改gitlab unicorn配置文件unicorn.rb(位置:/home/git/gitlab/config下)中的timeout,加大timeout值即可。
修改后,重启gitlab服务。
==========================================================================================
==========================================================================================
==========================================================================================
gitlab报错 "fatal: index-pack failed error: RPC failed; result=18, HTTP code = 200",如下图
这个问题网上有些人给出这样的解决方法是不行的,
所谓:Git config --globalhttp.postBuffer 24288000
git config --list
最有代表的是这个帖子:http://blog.csdn.net/ijibu/article/details/10830853
http://stackoverflow.com/questions/17683295/git-bash-error-rpc-failed-result-18-htp-code-200b-1kib-s
解决方法参考:
http://blog.csdn.net/nydia_xiangxiang/article/details/45058505
gitlab的安装目录文件结构
需要查看gitlab的报错信息在/gitlab/log/unicorn.stderr.log
很显然说超时了,那么修改默认配置即可,找到配置文件/config/unicorn.rb
timeout 240
这个改大即可
重启gitlab服务
# service gitlab restart