外观
git clone 速度慢、总是超时?6 种加速方法实测
git clone 一个 GitHub 仓库,速度只有几 KB/s,甚至卡在 Receiving objects 直接超时 —— 这是国内开发者最常见的痛点。
本文给出 6 种由易到难的加速方法,每种都附可直接复制的命令。建议从方法一开始试,大多数人用前两种就能解决。
先判断问题
如果连 GitHub 网页都打不开,可能是 DNS 或网络层问题,建议先看 网络排障 栏目;如果网页能开、只是 clone 慢,继续往下看。
方法一:使用镜像代理前缀(最简单,推荐)
在原仓库地址前面加一个加速代理前缀,是零配置、最快见效的方法。
bash
# 原地址
git clone https://github.com/user/repo.git
# 加速:在前面拼接镜像代理域名(示例,请替换为当前可用的加速站)
git clone https://<加速代理域名>/https://github.com/user/repo.git优点:无需任何本地配置,复制即用。 缺点:加速站可能不稳定或失效,需留意更换;不适合需要频繁 push 的开发。
注意
公共加速站的可用性会变化。请以当前实际可用的镜像为准,并避免在其上传输私有/敏感代码。
方法二:给 Git 配置本地代理(开发者首选)
如果你本机已经运行了代理客户端(通常监听 7890 / 1080 等端口),直接让 Git 走代理最稳定。
bash
# 为 https 协议的 GitHub 走 HTTP 代理(把 7890 换成你的实际端口)
git config --global http.https://github.com.proxy http://127.0.0.1:7890
# 取消
git config --global --unset http.https://github.com.proxy如果想让所有 http/https 请求都走代理:
bash
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.proxySOCKS5 代理写法:
bash
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080优点:一次配置,长期有效,push/pull 全程加速。 缺点:需要本机已有可用代理。
方法三:改用 SSH 协议 + 443 端口
有时 HTTPS(443)被限速,而 SSH(22)又常被封。可以让 SSH 走 443 端口兼顾两者。
编辑 ~/.ssh/config(Windows 为 C:\Users\你的用户名\.ssh\config):
text
Host github.com
Hostname ssh.github.com
Port 443
User git然后用 SSH 地址克隆:
bash
git clone git@github.com:user/repo.git验证连通:
bash
ssh -T git@github.com
# 出现 "Hi username! You've successfully authenticated" 即成功方法四:浅克隆(减少下载量)
如果你只需要最新代码、不需要完整提交历史,用浅克隆可以大幅减少下载体积。
bash
# 只拉取最近 1 次提交
git clone --depth 1 https://github.com/user/repo.git
# 只拉取某个分支的最新提交
git clone --depth 1 --branch main --single-branch https://github.com/user/repo.git之后如果需要完整历史:
bash
git fetch --unshallow优点:对大仓库效果显著。 缺点:历史不完整,不适合需要 git log 全量历史或二分定位的场景。
方法五:修改 Hosts,绕开 DNS 污染
GitHub 慢有时是 DNS 解析到了糟糕的 IP。手动指定较快的 IP 可以缓解。
- 查询当前较优的 GitHub 相关 IP(可用在线 DNS 查询工具查
github.com、github.global.ssl.fastly.net、raw.githubusercontent.com)。 - 编辑 hosts 文件:
- Windows:
C:\Windows\System32\drivers\etc\hosts(需管理员) - macOS / Linux:
/etc/hosts(sudo编辑)
- Windows:
text
140.82.112.3 github.com
185.199.108.133 raw.githubusercontent.com- 刷新 DNS 缓存:
bash
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder优点:不依赖代理。 缺点:IP 会变,需定期更新;效果不如代理稳定。
方法六:用 CDN 加速静态资源与 Release
克隆之外,下载 Release 大文件或 raw 文件慢时,可借助公共 CDN(如 jsDelivr)镜像 GitHub 静态资源:
bash
# 原 raw 地址
https://raw.githubusercontent.com/user/repo/main/file.txt
# 通过 jsDelivr 加速
https://cdn.jsdelivr.net/gh/user/repo@main/file.txt方法对比一览
| 方法 | 配置难度 | 稳定性 | 适用场景 |
|---|---|---|---|
| 一、镜像代理前缀 | ⭐ 极简 | 中(站点可能失效) | 临时 clone 公开仓库 |
| 二、Git 走本地代理 | ⭐⭐ | 高 | 日常开发(推荐) |
| 三、SSH 走 443 | ⭐⭐ | 高 | SSH 被封时 |
| 四、浅克隆 | ⭐ 极简 | 高 | 大仓库、只要最新代码 |
| 五、修改 Hosts | ⭐⭐ | 中 | 无代理、DNS 污染 |
| 六、CDN 加速 | ⭐ 极简 | 高 | Release / raw 文件 |
小结
- 最快见效:方法一(镜像前缀)或方法四(浅克隆)。
- 长期最稳:方法二(Git 走本地代理)+ 方法三(SSH 443)。
- 遇到具体报错(如
Failed to connect to github.com port 443),请看 网络排障 栏目。
想要更稳定省心的方案?
如果你经常需要访问海外技术资源,一条稳定的网络线路能省下大量折腾时间。可参考 代理与工具 栏目里的选型与配置指南。
本文仅供技术学习与研究,请遵守所在国家/地区法律法规。