git下载慢主因是直连github链路受dns劫持、限速或路由绕行,最有效方案是全局配置git config --global url."https://gitclone.com/".insteadof https://github.com/实现自动代理,辅以--depth=1浅克隆和raw.staticdn.net替换raw地址。

Git 下载慢不是 Git 本身的问题,而是你默认走的是直连 GitHub 的原始链路 —— 这条链路在国内多数情况下被限速、DNS 劫持或路由绕行。直接换源或加代理,比调参数、换协议更有效。
git config --global url."https://gitclone.com/".insteadOf https://github.com/
这是最轻量、最持久的加速方式:让所有 git clone https://github.com/xxx 自动转成走 gitclone.com 代理,无需改 URL,也不依赖浏览器或工具网站。
- 执行命令后,后续所有
git clone(包括子模块)都会自动替换,git pull和git fetch同样生效 - 如果只想对当前项目生效,把
--global换成--local,避免影响公司内部 Git 仓库 -
gitclone.com缓存了大量 GitHub archive 快照(如/archive/refs/heads/main.zip),对下载 release 压缩包特别快 - 注意:部分私有仓库或需要认证的地址可能失败,此时可临时删掉该配置:
git config --global --unset url."https://gitclone.com/".insteadOf
git clone --depth=1 适合只看代码不参与开发的场景
真正拖慢 git clone 的,是完整历史记录(尤其是含大文件或频繁提交的仓库)。--depth=1 跳过全部历史,只取最新一次 commit 的工作区,速度提升常达 5–10 倍。
- 命令示例:
git clone https://github.com/torvalds/linux --depth=1 - 后续想补全历史?进目录执行
git fetch --unshallow(需网络通畅,且远程支持) - 若只要某分支最新版,加
--branch=main,避免拉错默认分支 - ⚠️ 不适用于需要
git blame、git bisect或提交 PR 的场景 —— 历史缺失会导致这些命令报错
raw.githubusercontent.com 加速必须单独处理
GitHub 的 README 图片、配置文件、CI 脚本等 raw 资源,由 raw.githubusercontent.com 提供,它和主站域名不同,不会被 insteadOf 规则覆盖,也不能靠镜像站自动替换。
- 手动替换最稳:
https://raw.githubusercontent.com/xxx/yyy/zzz.json→https://raw.staticdn.net/xxx/yyy/zzz.json - 这个替换对所有格式有效(
.md、.png、.yml),且raw.staticdn.net是长期可用的静态 CDN 域名 - 脚本中若硬编码了 raw 地址,记得批量替换;CI 流水线里用
curl或wget下载时也得改 - 别用
raw.fastgit.org等短期域名 —— 它们可能随时失效或返回 404
Gitee 导入不是“备份”,是真实国内镜像节点
很多人以为 Gitee 导入只是“拷贝一份”,其实它是完整同步到 Gitee 自建服务器,后续所有操作(git clone、git pull、Download ZIP)都走国内 BGP 网络,实测稳定在 2–8 MB/s。
- 导入时勾选“同步 Issues / Pull Requests / Wiki”是可选项,代码本身必同步,不影响下载速度
- 导入后仓库地址变成
https://gitee.com/yourname/repo.git,git clone时用这个地址,别再拼github.com.cnpmjs.org - 子模块若也托管在 GitHub,需一并导入 Gitee 并更新
.gitmodules中的 URL,否则git submodule update仍会卡住 - 注意:Gitee 免费版私有仓库有协作者人数限制,公开仓库无此问题
最容易被忽略的是子模块和 raw 地址 —— 它们不随主仓库的 insteadOf 规则生效,也不受 --depth 影响,必须单独处理。一次配置 + 一次替换,比反复挂代理更省心。











