看似完成推动后,我的git push挂了.我要去git推
Counting objects: 51, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (47/47), 27.64 MiB | 6.47 MiB/s, done.
Total 47 (delta 4), reused 0 (delta 0)
Run Code Online (Sandbox Code Playgroud)
它挂在这里,我必须控制-c回到命令行.我曾经在这个项目中做过几次提交,现在有了问题.我在我的机器上尝试了其他回购,它们工作正常.这里发生了什么?
Fai*_*Dae 564
https://git-scm.com/docs/git-config#Documentation/git-config.txt-httppostBuffer
http.postBuffer
将数据 POST 到远程系统时,智能 HTTP 传输使用的缓冲区的最大大小(以字节为单位)。对于大于此缓冲区大小的请求,将使用 HTTP/1.1 和 Transfer-Encoding: chunked 来避免在本地创建大量包文件。默认值为 1 MiB,足以满足大多数请求。
请注意,提高此限制仅对禁用分块传输编码有效,因此仅应在远程服务器或代理仅支持 HTTP/1.0 或不符合 HTTP 标准的情况下使用。一般来说,提高这个值并不是大多数推送问题的有效解决方案,但会显着增加内存消耗,因为即使是小推送也会分配整个缓冲区。
解决
将 Git 缓冲区大小增加到存储库的最大单个文件大小
git config --global http.postBuffer 157286400
请参阅Git 推送失败 - 客户端打算为 ngnix 反向代理配置发送太大的分块正文的解决方案。将此参数增加到存储库的最大单个文件大小。
绕过出站代理,如由于 git 出站代理而无法克隆或拉取中所述
Pat*_*ick 84
事实证明这根本不是问题.我只需要等到上传完成.我添加了几个大文件,没有进度指示器.也许其他人会觉得这很有帮助.
Ali*_*mir 10
可能只是片刻(如已接受的答案所建议),但是在大多数情况下,它与远程服务器上的权限关联。自托管的remote大部分不是公共git服务(例如GitHub,Gitlab或Bitbucket)上的问题,但自托管的remote可能具有特殊用户或一组访问权限。
在新的裸存储库上,不足以更改文件夹,但由于其中包含.git
-Folder ,因此需要递归。
等了两个多小时后,我的 git Push 仍然卡住了。因此,我必须在提交之前重置,当时我不小心上传了一张 3.1mb 的照片(我猜这是冻结的罪魁祸首)。
我找到了@aroth 上面分享的一个更友好的解决方案,这git config --global http.postBuffer 157286400
就是答案。
我刚刚打开一个新的 iTerm 窗口运行上面的命令,然后git push
在 VSCode 中的终端仍然挂起的情况下运行。然后我ctrl c
关闭了 VSCode 中的终端会话,我又开始工作了。
谢谢@aroth!