我会说实话,我对git的内部知之甚少。
我已经上演并提交了一个40mb的目录,但是当我来推动......
$ git push --verbose --progress
Pushing to https://acron0@bitbucket.org/acron0/project.git
Password for 'https://acron0@bitbucket.org':
POST git-receive-pack (chunked)
这是20分钟。我假设它挂了但是......我能做些什么来找出原因吗?
答案 0 :(得分:91)
这是Git中的一个错误;使用HTTPS时,它将使用分块编码进行超过特定大小的上传。那些不起作用。
一个微不足道的修复方法是告诉git不要块,直到一些可笑的大尺寸值,例如:
git config http.postBuffer 524288000
答案 1 :(得分:18)
可能是你的凭据。使用git + ssh协议而不是https。
答案 2 :(得分:8)
使用SourceTree推送到BitBucket我每隔几个月就会收到一次这个错误。事实证明,我只需等待额外的五分钟就可以自行解决。看起来它已被绞死,诱惑就是取消并再试一次,但也许会在那里停留一段时间。我知道这已经回答了,但我的承诺可能只有几百kb,而不是原始海报所说的40mb。
答案 3 :(得分:1)
如果您发现此网站因BitBucket失败并显示该错误消息,请查看此答案:
特别是Nicholas Pickering和Simon Tewsi关于密钥的哪一部分需要粘贴到BitBucket对话框中的注释。
答案 4 :(得分:1)
使用Git 2.13(2017年第二季度),您可以将http.postBuffer
设置为一个非常大的数字(即,在某些平台上大于ulong
。)
commit 37ee680见David Turner (csusbdt
)(2017年4月11日)
(Junio C Hamano -- gitster
--于2017年4月24日commit 4c01f67合并)
http.postbuffer
:允许全范围的ssize_t
值不幸的是,为了推送服务器所做的一些大型回购 不支持分块编码,有时必须
http postbuffer
超过2千兆字节 在64位系统上,这没关系:我们只是malloc一个更大的缓冲区。这意味着我们需要使用CURLOPT_POSTFIELDSIZE_LARGE来设置 缓冲区大小。