挂在;后git接收包(分块)";
老实说,我对git的内部结构知之甚少 我已经准备并提交了一个40mb的目录,但当我来推挂在;后git接收包(分块)";,git,version-control,bitbucket,Git,Version Control,Bitbucket,老实说,我对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分钟了。我假设它挂着,但是……我能做些什么来找出原因吗?可
$ 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+ssh协议而不是https。这是git中的一个bug;当使用HTTPS时,它将对超过一定大小的上传使用分块编码。那些不起作用 一个简单的修复方法是告诉git在一些大得离谱的值之前不要分块,例如:
git config http.postBuffer 524288000
如果您发现此站点是因为BitBucket失败并显示该错误消息,请查看此站点的答案:
特别是关于需要将密钥的哪一部分粘贴到BitBucket对话框的注释。使用SourceTree推送到BitBucket,我每隔几个月就会收到一次此错误。事实证明,我只需再等五分钟,它就会自行解决问题。看起来它已经挂了,诱惑是取消,然后再试一次,但可能会再挂一点。我知道这已经得到了回答,但我的提交量可能达到了几百kb,而不是原始海报所说的40 MB。使用Git 2.13(2017年第2季度),您将能够将
http.postBuffer
设置为一个非常大的数字(即,在某些平台上大于ulong
)
参见(2017年4月11日)作者。(于2017年4月24日被合并)
http.postbuffer
:允许完整范围的ssize\u t
值
不幸的是,为了推动一些大型回购协议,服务器
不支持分块编码,httppostbuffer
有时必须
超过两GB。在64位系统上,这是可以的:我们只是需要一个更大的缓冲区 这意味着我们需要使用CURLOPT_POSTFIELDSIZE_LARGE来设置 缓冲区大小
也为我工作。知道为什么它不能与https协议一起工作吗?我正在尝试为github执行此操作,但没有git+ssh选项。我遵循TCP流,这是我的帐户的授权错误。我有相同的问题,相同的错误消息,sourcetree和github最终冻结并崩溃。我尝试了下面建议的命令,现在它显示了类似的内容:“POST-git-receive-pack({大约9位长的数字})”我必须更新我的Git版本,这总是值得检查的-我刚才无法推送一个新的存储库,发现BitBucket SSH已关闭…仍然挂在Git v1.9.5.msysgit.1Setting
postBuffer
中的windows上,这对我也没有帮助,但更新到Git for windows的预发行版(根据)这个错误是因为ngix被配置为拒绝大文件,所以您不应该添加更大的缓冲区,而应该将它放在服务器(在我的例子中是nix default config)接受的范围内git config http.postBuffer 5242
应该是大约5k的块。在我的例子中,我必须将后缓冲区大小减少到5000,正如@tyoc213所指出的那样,顺便说一句,最后一个“好”方法应该是将用户的远程公钥添加到gitlab,这样它就可以使用SSH而不是HTTPS,这样它就可以处理现在的大文件了(除非服务器像github一样拒绝它们,我想以后/现在也会这样做)。我的情况也一样。我取消了推送SourceTree并等待了5分钟,然后再试一次,结果成功了。我在这里等了大约一个小时(28mb提交)-什么都没有,绝对没有发生。@seulberg1这里还有其他答案,你试过吗?是的,我试过不同的git版本,嵌入式-非嵌入式,等待,限制块大小,确保我经过身份验证……最后,我通过删除最后一次远程提交和“重新提交”解决了这个问题在一大块中删除和实际提交。不幸的是,在我的环境中,我无法切换到SSH身份验证。