Git Bash执行git push出现HttpRequestException提示但推送成功,是否有潜在问题?
解决Git Bash推送时的
HttpRequestException提示问题 先看你遇到的具体场景,命令输出大概是这样对吧:
$ git push -u origin master
fatal: HttpRequestException encountered.
An error occurred while sending the request.
...(后续显示推送成功的正常信息)
别担心,虽然这个报错看着吓人,但既然推送能正常完成,说明核心功能没问题,大概率是网络连接的小波折或者Git配置的细微问题,一般没什么致命隐患,但咱可以把这个烦人的提示去掉,让命令行输出清爽起来。
常见修复方案,挨个试试:
1. 调整Git的HTTP连接参数
Git的HTTP客户端可能在第一次建立连接时超时了,但后续重试成功了。咱可以调大缓存和超时时间:
- 执行这个命令增大HTTP推送缓存:
git config --global http.postBuffer 524288000 - 或者延长连接超时时间:
git config --global http.timeout 300(单位是秒,这里设成5分钟)
2. 检查并清理代理设置
如果之前配置过代理,现在不需要了或者代理地址不对,会干扰Git的网络请求:
- 先看看当前有没有代理配置:
git config --global --get http.proxy和git config --global --get https.proxy - 如果输出了不需要的代理地址,直接清空:
git config --global --unset http.proxy和git config --global --unset https.proxy
3. 更新Git到最新版本
旧版本的Git for Windows(Git Bash就是这个套件里的)HTTP客户端可能有兼容性bug,更新一下就好:
- 去Git官方渠道下载最新的Git for Windows安装包,覆盖安装就行,安装过程中保持默认配置就ok
4. 排查防火墙/杀毒软件的拦截
有时候本地防火墙或者杀毒软件会误拦截Git的网络请求,导致初始连接失败,但后续请求又通过了:
- 可以临时关掉防火墙/杀毒软件,再推一次试试,如果没报错了,就把Git Bash添加到信任列表里,避免以后再被拦截
关于“幕后隐患”的说明
这个报错本质是Git第一次连接GitHub时失败了,但它内置的重试机制救场了,所以最终推送成功。一般来说不会有数据丢失、同步不全的问题——要是真有严重问题,推送直接就失败了,不会给你成功提示。但如果这个报错频繁出现,还是建议赶紧修复,保不齐哪天重试机制抽风,真的导致推送失败就麻烦了。
内容的提问来源于stack exchange,提问作者Timothy Wilburn
相关产品推荐
相关产品推荐

