Git clone在特定存储库上返回result = 18 code = 200

时间:2012-09-02 13:43:34

标签: git git-config

我正在尝试从公司存储库中克隆内部存储库,并且我一直收到此错误:

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吗?

我希望它能提供更多信息......

2 个答案:

答案 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组件置于例外:

例外规则:

  • C:\ Program Files(x86)\ Git \ bin \ git.exe |所有
  • C:\ Program Files(x86)\ Git \ bin \ curl.exe | all
  • C:\ Program Files(x86)\ Git * | all
  • C:\ Program Files(x86)\ Git \ git-cheetah * | all

可信软件:

  • C:\ Program Files(x86)\ Git \ bin \ git.exe
  • C:\ Program Files(x86)\ Git \ bin \ curl.exe
  • C:\ Program Files(x86)\ Git \ bin \ sh.exe
  • c:\ program files(x86)\ git \ libexec \ git-core \ git-remote-http.exe
  • c:\ program files(x86)\ git \ libexec \ git-core \ git-upload-pack.exe

并勾选所有选项,根本不打断它们(没有跟踪工作流程和网络活动) - 之后问题就消失了