执行git push时出现"error: RPC failed; HTTP 408..."错误该如何解决?
解决Git推送GitHub时的RPC失败/HTTP 408错误
已经试过调整http.postBuffer和更换网络仍无法解决的话,可以试试以下方案:
改用SSH协议推送
很多HTTP协议的超时问题换SSH就能解决:- 生成SSH密钥(如果没有的话):
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱" - 复制
~/.ssh/id_ed25519.pub里的内容,添加到GitHub账户的「SSH and GPG keys」设置中 - 替换远程仓库地址为SSH格式:
git remote set-url origin git@github.com:你的用户名/仓库名.git - 重新执行推送:
git push
- 生成SSH密钥(如果没有的话):
降级HTTP版本到1.1
HTTP/2可能在某些网络环境下出现兼容性问题,切换到HTTP/1.1试试:git config --global http.version HTTP/1.1推送成功后如果想换回HTTP/2,执行:
git config --global http.version HTTP/2清理或管理大文件
仓库里的大文件(比如超过100M的)很容易导致推送超时:- 找出仓库里的大文件:
git ls-files -s | sort -k 2 -n - 如果是不需要提交的大文件,直接从暂存区移除并添加到
.gitignore:git rm --cached 大文件名 echo "大文件名" >> .gitignore git commit -m "Remove large unused file" - 如果需要保留大文件,用Git LFS管理:
git lfs install git lfs track "*.后缀名" # 比如*.zip、*.iso git add .gitattributes 大文件名 git commit -m "Track large file with LFS"
之后再尝试推送。
- 找出仓库里的大文件:
调整超时相关配置
延长Git的超时阈值,避免因传输慢被判定为超时:git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999 git config --global remote.origin.proxy "" # 取消可能存在的代理
内容的提问来源于stack exchange,提问作者Herus
相关产品推荐
相关产品推荐

