我有一个有趣的问题。我有一个关于 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 失败的东西;结果 = 28,HTTP 代码 = 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 中,所以没有strace
(Windows 的 Systrace)。我还尝试在没有代理的网络中创建一个分支(又名家庭),并且能够git push --all
从那里成功。正如我之前所说。我可以git push
从代理(又名办公室)后面的网络,但不能这样做git push --all
。