Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
挂在;后git接收包(分块)";_Git_Version Control_Bitbucket - Fatal编程技术网

挂在;后git接收包(分块)";

挂在;后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的内部结构知之甚少

我已经准备并提交了一个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+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身份验证。