我正在尝试从公司存储库中克隆内部存储库,并且我一直收到此错误:
error: RPC failed; result=18, HTTP code = 200
只有在完全下载存储库之后才会发生这种情况(需要一段时间)。
我尝试过使用torotiseGit。这是报告:
git.exe clone --progress -v "http://path/repository.git" "C:\Users\user\Documents\code\repository"
Cloning into 'C:\Users\user\Documents\code\repository'...
POST git-upload-pack (424 bytes)
remote: Compressing objects: 100% (4895/4895)
Receiving objects: 100% (6970/6970), 61.89 MiB | 4.82 MiB/s
Resolving deltas: 100% (2610/2610)
Resolving deltas: 100% (2610/2610), done.
remote: Total 6970 (delta 2610), reused 5702 (delta 1672)
error: RPC failed; result=18, HTTP code = 200
git did not exit cleanly (exit code 128)
我已经尝试了几次,从Linux机器和Windows机器。同样的错误
我如何进一步调查错误? 我在Google上找不到任何有用的信息
编辑:我已经检查了Git服务器上的Apache日志 - 每个克隆都有一个GET和一个POST(结果为200)。 POST有点大(60MB) - 所以我尝试将postBuffer增加到500MB,但错误仍然存在这真的是一个git bug吗?
我希望它能提供更多信息......
答案 0 :(得分:13)
错误: RPC失败; result = 18,HTTP code = 200 是一个libcurl错误。
从http://curl.haxx.se/libcurl/c/libcurl-errors.html我们可以看到:
CURLE_PARTIAL_FILE(18)
文件传输比预期更短或更长。这发生在 服务器首先报告预期的传输大小,然后传递 与先前给定大小不匹配的数据。
您可以在运行像clone这样的命令之前设置GIT_CURL_VERBOSE = 1,以了解libcurl是如何失败的。这可以在bash中完成:
GIT_CURL_VERBOSE=1 git clone --progress -v ...
但是,鉴于上述错误,您应尝试调整 http.postBuffer 。尝试:
git config --global http.postBuffer 524288000
从这里https://www.kernel.org/pub/software/scm/git/docs/git-config.html
答案 1 :(得分:3)
我在Windows机器上遇到同样的问题(无法拉或克隆远程仓库),而使用git远程服务器通过http(而不是https) - 解决方案我发现了这个问题: 在桌面计算机上(发生错误)的原因是一个防病毒软件(在我的情况下是卡巴斯基互联网安全2013)所以我将以下git组件置于例外:
并勾选所有选项,根本不打断它们(没有跟踪工作流程和网络活动) - 之后问题就消失了