执行git pull时出现git-remote-https died of signal 6错误求助
Git HTTP 拉取/克隆报错,调大http.bufferSize无效,切换SSH解决的原因分析
问题背景
- 此前为提交大文件,将Git的
http.postBuffer值设置为524288000,操作后未恢复默认配置 - 在macOS系统执行
git pull拉取远程变更时触发报错,尝试进一步调大http.bufferSize(应为http.maxRequestBuffer)仍无法解决 - 手动下载仓库仅5MB,但执行
git clone时同样出现相同错误 - 最终切换为SSH协议后问题得以解决
核心原因分析
http.postBuffer的作用范围误解
http.postBuffer仅控制Git**推送(push)大文件时的本地缓冲区大小,对拉取(pull/clone)**操作完全无效。拉取操作的缓冲区由服务器端配置和本地http.maxRequestBuffer控制,盲目调大这个参数如果超过GitHub服务器的限制,反而会触发请求异常。异常配置导致HTTP请求不符合服务器规范
当http.postBuffer设置过大(或误设为过小的5242)时,Git发起HTTP请求时的请求头、请求结构会不符合GitHub服务器的预期规范,被判定为异常请求,从而拒绝处理。macOS下Git配置的优先级或路径冲突
macOS可能存在多版本Git(系统自带/brew安装),不同版本读取的配置文件路径不同,可能导致你修改的配置未实际生效;或者全局配置与仓库本地配置存在冲突,残留的错误配置持续影响HTTP连接。HTTP链路的缓存/代理干扰
macOS系统级代理、Git的凭证缓存等可能因异常的HTTP配置产生缓存数据异常,即使调整参数也无法覆盖。而SSH协议绕过了这些HTTP相关的缓存和代理逻辑,因此可以正常建立连接。
针对类似问题的修复步骤
- 恢复
http.postBuffer到官方默认值(50MB):
注:你之前打算恢复的git config --global http.postBuffer 524288005242远低于默认值,这本身也可能引发HTTP请求异常。 - 重置HTTP相关配置,清除异常参数:
git config --global --unset http.maxRequestBuffer git config --global --unset http.postBuffer - 清除Git的HTTP凭证缓存:
git credential-cache exit
内容的提问来源于stack exchange,提问作者Andrej
相关产品推荐
相关产品推荐

