git push --all失败了' RPC失败;结果= 22,HTTP代码= 0'

时间:2012-07-16 04:59:59

标签: git git-push http-proxy

我有一个有趣的问题。我有一个关于bitbucket的宠物项目,到目前为止,我能够从两个不同的网络(家庭和办公室)拉动和推动。需要一段时间才能正确设置配置,但我已经通过一些尝试和错误方法找到了它。现在问题是我在办公室里创建了一个分支(在代理后面),我不能用--all参数将它推送到bitbucket。我得到了:

  

RPC失败;结果= 22,HTTP代码= 0

这是git bash(已修改):

user@machine /c/dev/data/personal/projectname (master)
$ git push --all --dry-run
Password for 'https://username@bitbucket.org':
To https://username@bitbucket.org/username/projectname
 * [new branch]      ivymigration -> ivymigration

user@machine /c/dev/data/personal/projectname (master)
$ git push --all
Password for 'https://username@bitbucket.org':
Counting objects: 194, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (112/112), done.
Writing objects: 100% (116/116), 58.37 KiB, done.
Total 116 (delta 81), reused 0 (delta 0)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

user@machine /c/dev/data/personal/projectname (master)
$ git config --global -l
http.proxy=http://user:password@proxy:8080
http.postbuffer=524288000
user.name=[My Name]
user.email=[my_name]@[my.domain]
core.autocrlf=true
push.default=upstream

我尝过来自RPC failed; result=28, HTTP code = 0的内容 但没有成功。由于代理服务器,将https更改为git或git + ssh无效。 有趣的是,推送工作到目前为止没有--all属性。但是一旦我想推动所有这些,包括新的分支,整个事情就会崩溃。

有什么想法吗?

更新#1:

我试图按照https://confluence.atlassian.com/display/BITBUCKET/Branching+a+Repository部分'如何分支git'中的说明推动分支,但没有成功。这是git bash:

user@machine /c/dev/data/personal/projectname (master)
$ git push origin ivymigration
Password for 'https://username@bitbucket.org':
Counting objects: 203, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (72/72), done.
Writing objects: 100% (125/125), 70.79 KiB, done.
Total 125 (delta 86), reused 88 (delta 49)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

正如您所见,我得到了同样的错误。

更新#2:

我已经尝试过Seth的建议,结果如下:

user@machine /c/dev/data/personal/projectname (ivymigration)
$ GIT_TRACE=1 git push --all
trace: built-in: git 'push' '--all'
trace: run_command: 'git-remote-https' 'origin' 'https://username@bitbucket.org/username/projectname'
Password for 'https://username@bitbucket.org':
trace: run_command: 'send-pack' '--stateless-rpc' '--helper-status' '--thin' '--progress' 'https://username@bitbucket.org/username/projectname/' 'refs/heads/ivymigration:refs/heads/ivymigration'
trace: built-in: git 'send-pack' '--stateless-rpc' '--helper-status' '--thin' '--progress' 'https://username@bitbucket.org/username/projectname/' 'refs/heads/ivymigration:refs/heads/ivymigration'
trace: run_command: 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
trace: built-in: git 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
Counting objects: 203, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (72/72), done.
Writing objects: 100% (125/125), 70.79 KiB, done.
Total 125 (delta 86), reused 88 (delta 49)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

您可以看到相同的结果,并且没有与实际故障相关的额外信息。所以我尝试了第二个命令。它失败了,因为我在Windows中,因此没有straceSystrace for Windows)。我还尝试在网络中创建一个没有代理(也称为home)的分支,并且能够从那里成功git push --all。正如我之前所说。我可以git push来自网络代理(又称办公室),但无法git push --all

3 个答案:

答案 0 :(得分:28)

以下是帮助我的命令,以下命令将git buffer增加到500mb:

git config http.postBuffer 524288000

从这里开始:Git: error: RPC failed; result=22, HTTP code = 411

答案 1 :(得分:2)

有点破解,但是我使用Fiddler2解决了这个问题,并在.gitconfig中设置代理以通过Fiddler

[http]
proxy = http://USER:PASSWORD@127.0.0.1:8888

下行是你需要在做任何远程选项和纯文本密码之前启动Fiddler,但至少它似乎有效。

答案 2 :(得分:0)

我遇到了同样的问题。我通过暂时从.gitconfig

中删除这些行来解决它
[http]
    proxy = http://user:password@proxy.domain.tld:8080

使用以下命令代替:

export http_proxy=http://user:password@proxy.domain.tld:8080