版本控制-挂在“ POST git-receive-pack(分块)”

老实说,我对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)

像这样二十分钟了 我以为它挂着了,但是...我能做些什么找出原因吗?

acron asked 2019-11-07T08:49:40Z
5个解决方案
92 votes

这是Git中的错误; 使用HTTPS时,它将对超过特定大小的上传文件使用分块编码。 那些不起作用。

一个简单的解决方法是告诉git在一些非常大的大小值之前不要分块,例如:

git config http.postBuffer 524288000
Scott Hooper answered 2019-11-07T08:49:58Z
19 votes

可能是您的凭据。 使用git + ssh协议代替https。

Adam Dymitruk answered 2019-11-07T08:50:17Z
8 votes

使用SourceTree推送到BitBucket,每隔几个月就会收到一次此错误。 事实证明,我只需要再等五分钟,便可以解决问题了。 看起来好像已经死机了,诱惑是要取消并重试,但可能会在那里停留更长的时间。 我知道已经回答了这个问题,但是我的提交可能只有几百kb,而不是原始海报所说的40 mb。

amergin answered 2019-11-07T08:50:37Z
1 votes

如果您是由于BitBucket失败而出现此错误消息而找到此站点的,请查看该站点的答案:

  • 如何在bitbucket存储库中使用git扩展?

特别是Nicholas Pickering和Simon Tewsi的评论,确切地说,密钥的哪一部分需要粘贴到BitBucket对话框中。

Richard Le Mesurier answered 2019-11-07T08:51:01Z
1 votes

使用Git 2.13(2017年第二季度),您将能够将http postbuffer设置为非常大的数字(即在某些平台上大于ssize_t)。

参见David Turner(http postbuffer)的commit 37ee680(2017年4月11日)。
(由Junio C Hamano合并-http postbuffer-在commit 4c01f67中,2017年4月24日)

http postbuffer:允许完整的ssize_t

不幸的是,为了将一些大型存储库推送到服务器   不支持分块编码,http postbuffer有时必须   超过2 GB。
在64位系统上,这没关系:我们只是分配了一个更大的缓冲区。

这意味着我们需要使用CURLOPT_POSTFIELDSIZE_LARGE来设置   缓冲区大小。

VonC answered 2019-11-07T08:52:00Z
translate from https://stackoverflow.com:/questions/10790232/hanging-at-post-git-receive-pack-chunked