挂在"POST git-receive-pack(chunked)"

acr*_*ron 58 git version-control

老实说,我对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)
Run Code Online (Sandbox Code Playgroud)

这是20分钟.我假设它挂了但是......我能做些什么来找出原因?

小智 94

这是Git中的一个错误; 使用HTTPS时,它将使用分块编码进行超过特定大小的上传.那些不起作用.

一个简单的解决方法是告诉git不要块,直到一些可笑的大尺寸值,例如:

git config http.postBuffer 524288000
Run Code Online (Sandbox Code Playgroud)

  • 此错误是因为ngix配置为拒绝大文件,因此您应该将其放在服务器(在我的情况下是nix默认配置)接受的范围内,而不是添加更大的缓冲区.```git config http.postBuffer 5242```应该是大约5k的块. (6认同)
  • 设置`postBuffer`也没有帮助我,但更新到Git for Windows的预发行版(http://stackoverflow.com/a/30842134/2688) (4认同)
  • 仍然挂在git v1.9.5.msysgit.1的窗口上 (2认同)
  • 在我的情况下,我必须将post缓冲区大小减少到5000,如@ tyoc213所述 (2认同)
  • 顺便说一句,最后的“好”方法应该是将用户的远程公钥添加到 gitlab,以便能够使用 SSH 而不是 HTTPS,这样它就可以处理现在的大文件(除非服务器拒绝它们作为策略)就像 github 一样,我想将来/现在也会这样做)。 (2认同)

Ada*_*ruk 19

可能是你的凭据.使用git + ssh协议而不是https.


ame*_*gin 8

使用SourceTree推送到BitBucket我每隔几个月就会收到一次这个错误.事实证明,我只需等待额外的五分钟就可以自行解决.看起来它已被绞死,诱惑就是取消并再试一次,但也许会在那里停留一段时间.我知道这已经回答了,但我的承诺可能是几百kb,而不是原始海报所说的40mb.