一、引言
作为一个开发者,git clone 速度慢 这件事真的让我抓狂过无数次。尤其是当我兴致勃勃地想要拉取一个开源项目、或者临时修个 Bug 的时候,git clone 却卡在那里,几分钟过去了 一点进度条都没动,真的想砸键盘。
更离谱的是,有时候 别人五秒拉完的代码,我得等五分钟,甚至 直接 clone 失败,真的痛不欲生。
这篇文章,我就来聊聊 git clone 为什么会这么慢,以及 如何用最简单、最有效的方法加速,不让自己被折磨得怀疑人生。
二、为什么 git clone 会这么慢?
在你疯狂敲键盘、怒骂 GitHub 服务器之前,我们得先搞清楚 问题的根源。
导致 git clone 速度慢的 主要原因 有以下几个:
- 网络环境问题:GitHub 服务器在国外,我们访问时可能会遇到 丢包、限速、甚至被墙,尤其是电信、联通、移动的网络情况都不一样,结果就是——你可能比别人慢好几倍
- GitHub CDN 不稳定:GitHub 依赖 githubusercontent.com 作为代码的对象存储,但有时候它的 CDN 解析不稳定,导致克隆速度忽快忽慢
- TLS 连接被中断:经常看到 GnuTLS recv error (-110): The TLS connection was non-properly terminated. 这种报错?基本上就是 TLS 连接超时了,可能是 SSL 证书校验 失败,或者 TLS 版本不兼容。
- 仓库体积太大:有些项目(比如 tensorflow、pytorch)有超多提交历史,git clone 会默认把所有的 commit 和分支都拉下来,导致时间巨长
- Git 配置问题:如果你在 Git 里配置了错误的代理,或者 Git 版本太旧,都会影响 clone 的速度。
三、6 种实用的 git clone 加速方法
接下来,我会介绍 6 种简单又有效的方法,它们适用于不同的场景,你可以 按需选择。
方法 1:使用国内 GitHub 镜像
适用场景:
🚀 如果 GitHub 访问慢,网络卡顿,或者 clone 没反应,可以用国内镜像加速!
1.1 使用 github.com.cnpmjs.org
git clone https://github.com.cnpmjs.org/hustvl/4DGaussians.git
这个是由 cnpm 提供的 GitHub 加速服务,很多时候比官方源快 5 倍以上!
1.2 使用 gitclone.com
git clone https://gitclone.com/github.com/hustvl/4DGaussians.git
gitclone.com 也是国内的 GitHub 镜像,速度非常快!
1.3 使用 ghproxy
git clone https://ghproxy.com/https://github.com/hustvl/4DGaussians.git
ghproxy 是一个 GitHub 代理服务器,能加速 git clone 和 wget 下载。
1.4 使用 FastGit
git clone https://hub.fastgit.xyz/hustvl/4DGaussians.git
FastGit 也是国内的 GitHub 加速站点,稳定性不错。
方法 2:只拉取最新代码(浅克隆)
适用场景:
🐢 如果 clone 速度慢,仓库太大,代码 commit 太多,就用这个!
默认情况下,git clone 会把 整个仓库的历史 都拉下来,包括几百、几千次的提交记录。但我们其实只需要最新代码! 所以可以用 --depth=1 只拉最新的 commit:
git clone --depth=1 https://github.com/hustvl/4DGaussians.git
如果后面想获取完整历史,可以再执行:
git fetch --unshallow
方法 3:改用 SSH 方式克隆
适用场景:
🔑 如果 HTTPS 方式速度慢,或者经常 clone 失败,就用 SSH!
git clone git@github.com:hustvl/4DGaussians.git
⚠️ 但前提是你得先配置 SSH Key,如果没配置,先执行:
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
然后 把 id_rsa.pub 复制到 GitHub -> Settings -> SSH Keys,再试 git clone。
方法 4:临时关闭 SSL 验证
适用场景:
🔒 如果 clone 时报 TLS connection was non-properly terminated 之类的 SSL 相关错误,可以试试这个!
git config --global http.sslVerify false
git clone https://github.com/hustvl/4DGaussians.git
克隆成功后,建议恢复默认设置:
git config --global http.sslVerify true
方法 5:更新 Git 版本
适用场景:
📌 如果 Git 版本过旧,可能导致 TLS 连接失败,建议更新!
先检查 Git 版本:
git --version
如果 Git 版本低于 2.30,建议更新:
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt update
sudo apt install git -y
然后再试 git clone。
方法 6:直接下载 ZIP
适用场景:
📦 如果 git clone 还是失败,那就直接下载 ZIP 压缩包吧!
wget https://ghproxy.com/https://github.com/hustvl/4DGaussians/archive/refs/heads/main.zip
unzip main.zip
mv 4DGaussians-main 4DGaussians
这样虽然不能保留 Git 历史记录,但至少能把代码拿到本地。
总结
如果你被 git clone 速度慢 折磨得抓狂,别急,试试以下方法:
希望这篇文章能帮你 彻底解决 git clone 速度慢的问题! 🚀🚀🚀