最近给仓库换了个名字,顺手把几个子域名也整理了一下。没想到在 VSCodium 里一推送,直接报错,折腾了一会儿才搞定。记录一下。
GitHub 仓库改名后本地同步与连接超时问题解决记录
最近给仓库换了个名字,顺手把几个子域名也整理了一下。没想到在 VSCodium 里一推送,直接报错,折腾了一会儿才搞定。记录一下。
问题现象
Git: fatal: unable to access 'https://github.com/yosoroQ/1.git/' : Failed to connect to github.com:443 after 21109 ms: Could not connect to server仓库已经改名为 box-inventory,但本地还在往旧的 1.git 推送。更奇怪的是,浏览器访问 GitHub 和 Google 都正常,但 Git 操作却超时了。
问题拆解
这个报错实际上是两个问题叠加在一起:
- 本地远程地址还指向旧仓库名
- 网络到 GitHub 的延迟过高(20000ms 以上),导致连接失败
网页能打开不代表 Git 能顺畅传输数据。网页访问的数据量小,对延迟不敏感;而 git push 需要传输打包后的数据,对网络稳定性要求高得多。
解决方案
第一步:更新远程地址
先看一眼当前远程地址指向哪里:
git remote -v确认指向了旧仓库后,改成新的:
git remote set-url origin https://github.com/yosoroQ/box-inventory.git再确认一遍:
git remote -v
# origin https://github.com/yosoroQ/box-inventory.git (fetch)
# origin https://github.com/yosoroQ/box-inventory.git (push)改完之后,地址问题解决了,但推送依然超时。
第二步:解决网络延迟
尝试了几个方法,最后有效的组合是:
1. 调整 Git 缓冲区配置
git config --global http.postBuffer 524288000
git config --global http.maxRequestBuffer 100M
git config --global core.compression 9这三个参数分别解决大文件传输中断、请求缓冲区过小、以及数据压缩的问题。压缩级别调到 9 后,传输数据量能减少 30%-50%。
2. 检查代理设置
如果有代理,需要让 Git 走代理:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890如果没用代理但之前配置过,要取消掉:
git config --global --unset http.proxy
git config --global --unset https.proxy3. 测试连接
git ls-remote origin能列出分支信息,说明网络通了。
第三步:正常推送
git push -u origin main成功。
总结
这次遇到的是两个问题,改完地址之后网络还是不通,折腾了一会儿才想到可能是缓冲区的问题。Git 默认的缓冲区只有 1MB,对于稍大一点的项目就容易超时中断。把 http.postBuffer 调到 500MB 之后就好了很多。
另外,网页能访问 GitHub 不代表 Git 能稳定连接,这个问题以前也遇到过几次,这次算是彻底理清楚了。
附:Git 远程地址相关命令
# 查看当前远程地址
git remote -v
# 修改远程地址
git remote set-url origin <新地址>
# 添加新的远程仓库
git remote add origin <地址>
# 删除远程仓库
git remote remove origin附:网络相关配置
# 查看当前 Git 配置
git config --global --list
# 取消代理设置
git config --global --unset http.proxy
git config --global --unset https.proxy
# 设置缓冲区大小(单位字节)
git config --global http.postBuffer 524288000


Comments | NOTHING
该文章已经关闭评论