深夜11点半,项目明天要交付,我满心欢喜敲下 git push,结果终端直接给我甩了个 Timed out。那一刻,血压比CPU还高。说实话,国内用GitHub,网络不稳定简直是每个开发者的宿命。但你真的只能干瞪眼、天天祈祷运营商大发慈悲吗?
很多同学遇到推送失败,第一反应就是疯狂重试,或者去网上搜什么“修改DNS刷新缓存”。说白了,这都是在跟玄学硬刚。跨境链路拥堵、运营商时不时拦截SSH的22端口,这些底层问题你改个本地DNS根本治不了本。我以前也折腾过各种偏方,直到后来才明白,彻底解决这事儿得靠“工程思维”——绕过障碍,而不是清除障碍。
最立竿见影的招数,就是把SSH的22端口换成443。这操作真的绝了,就像是你去排队买奶茶,主队排了200人,你直接溜去旁边没人管的VIP通道。只要在 ~/.ssh/config 里把 Hostname 改成 ssh.github.com,Port 设为 443,瞬间就能感觉到网络顺畅了。这招不需要任何代理工具,不用花钱,属于一劳永逸的底线方案,强烈建议所有人立刻配上。
不过,哪怕你换了端口,偶尔推大仓库时还是会遇到断流。这时候千万别慌,更别瞎猜是不是代码丢了。Git的设计机制决定了,只要你本地 commit 成功,代码就死死焊在你的硬盘里,推不上去只是网络没跑通,重试一把就行。
但为了彻底杜绝那种“推不上去的焦虑感”,我强烈建议搞个双保险:给项目同时挂上GitHub和Gitee的远程仓库。一行 git push github main 加一行 git push gitee main,两边同步。哪怕GitHub突然彻底罢工,Gitee在国内也是秒级同步,你的代码永远不会悬在半空。
搞定这些,你会发现用GitHub再也不用看老天爷的脸色了。下次再遇到报错,别急着砸键盘,先看看自己的通道是不是走对了。
参与讨论
换成443真香,push瞬间不卡了。
这招省了我好多时间,强推!
双仓库备份真的稳,放心了 😊
我把~/.ssh/config里Host改ssh.github.com,Port 443,真的稳。
这办法对企业版GitHub也行吗?