挂在“POST git-receive-pack(分块)”
我会诚实地说,我对git的内部知之甚less。
我已经上演了一个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分钟。 我假设它挂了,但是…有什么我可以做,找出原因?
这是Git中的一个错误; 当使用HTTPS时,它将使用分块编码进行超过一定大小的上传。 那些不起作用。
一个简单的解决办法是告诉git不要大块,直到一些荒谬的大尺寸值,如:
git config http.postBuffer 524288000
可能是你的凭据。 使用git + ssh协议而不是https。
使用SourceTree推到BitBucket我每隔几个月就会遇到这个错误。 事实certificate,我只需要再等五分钟就可以自行sorting。 它看起来已经被吊死了,诱惑就是取消,然后再试一次,但是可能会在那里停留一段时间。 我知道这已经回答了,但是我的提交量可能达到几百kb,而不是原始海报正在谈论的40mb。
如果你发现这个网站是因为BitBucket失败的话,那么请检查这个答案:
- 如何使用git扩展与bitbucket存储库?
特别是Nicholas Pickering和Simon Tewsi关于需要粘贴到BitBucket对话框中的关键部分的评论。
使用Git 2.13(Q2 2017),您将能够将http.postBuffer
设置为一个非常大的数字(即在某些平台上比ulong
大)。
见David Turner( csusbdt
) 提交的37ee680 (2017年4月11日) 。
(由Junio C gitster
– gitster
合并-于2017年4月24日提交4c01f67 )
http.postbuffer
:允许全部的ssize_t
值不幸的是,为了在服务器不支持分块编码的情况下推送一些大的回购
http postbuffer
,http postbuffer
有时必须超过2千兆字节。
在64位系统上,这是行的:我们只是malloc一个更大的缓冲区。这意味着我们需要使用CURLOPT_POSTFIELDSIZE_LARGE来设置缓冲区大小。