GitHub 加速
本文介绍如何在 Linux 环境中通过 GitHub Proxy 加速公开仓库、源码包和 Release 文件的下载,适合在 GPU 容器或网络访问 GitHub 较慢的服务器中使用。
概述
GitHub Proxy 的基本用法是在原始 GitHub 地址前添加代理前缀:
https://gh-proxy.com/<GitHub 原始地址>例如,原始仓库地址为:
https://github.com/OWNER/REPOSITORY.git添加代理前缀后变为:
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY.git本文使用的 gh-proxy.com 是第三方公共服务,并非 GitHub 或立方云官方服务。服务可用性、速度和支持范围可能发生变化,请勿通过第三方代理传输账号密码等敏感信息。
克隆公开仓库
将仓库地址替换为代理地址后执行 git clone:
git clone https://gh-proxy.com/https://github.com/OWNER/REPOSITORY.git例如:
git clone https://gh-proxy.com/https://github.com/pytorch/examples.git如只需要最新代码,可以通过浅克隆减少传输量:
git clone --depth 1 https://gh-proxy.com/https://github.com/pytorch/examples.git代理不可用时,移除 https://gh-proxy.com/ 前缀即可恢复为 GitHub 官方地址。
下载源码压缩包
GitHub 分支和 Tag 的源码压缩包可以使用 wget 或 curl 下载。
下载分支
wget -O repository-main.zip \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY/archive/refs/heads/main.zip使用 curl 时需要启用重定向:
curl -L \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY/archive/refs/heads/main.zip \
-o repository-main.zip下载 Tag
wget -O repository-v1.0.0.tar.gz \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY/archive/refs/tags/v1.0.0.tar.gz请将示例中的 OWNER、REPOSITORY、分支名和版本号替换为实际值。
下载 Release 文件
先在 GitHub Release 页面复制文件的原始下载地址,再在地址前添加代理前缀:
wget \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY/releases/download/v1.0.0/package.tar.gz下载大文件时可以使用 -c 参数断点续传:
wget -c \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY/releases/download/v1.0.0/package.tar.gz如果项目提供 SHA256 等校验值,下载完成后应验证文件完整性:
sha256sum package.tar.gz下载 Raw 文件
对于 raw.githubusercontent.com 上的单个文件,同样可以添加代理前缀:
curl -L \
https://gh-proxy.com/https://raw.githubusercontent.com/OWNER/REPOSITORY/main/path/to/file \
-o file请先在浏览器中打开 GitHub 文件页面并复制 Raw 地址,避免手动拼写分支和文件路径时出错。
Git LFS 与 Submodule
GitHub Proxy 不一定完整支持 Git LFS 和 Git Submodule:
- 仓库克隆成功后,Git LFS 大文件仍可能从其他域名下载并失败。
.gitmodules中通常保存 GitHub 官方地址,子模块下载不一定经过代理。- 包含大量 LFS 文件的模型仓库,建议优先使用项目提供的对象存储、Release 包或其他官方镜像。
如果只需要先获取 Git 仓库而暂时跳过 LFS 文件,可以执行:
GIT_LFS_SKIP_SMUDGE=1 git clone \
https://gh-proxy.com/https://github.com/OWNER/REPOSITORY.git私有仓库
不建议通过公共第三方代理克隆私有仓库,也不要在代理 URL 中写入用户名、密码、Access Token 或其他凭证。
访问私有仓库时,建议使用 GitHub 官方 SSH 地址、可信网络代理或组织内部部署的镜像服务:
git clone git@github.com:OWNER/REPOSITORY.git常见问题
返回 403、404 或 5xx
先移除代理前缀检查 GitHub 原始地址是否有效,并确认仓库、分支、Tag 和文件名没有拼写错误。原始地址有效但代理持续报错时,请稍后重试或直接使用官方地址。
下载后的文件无法解压
代理异常时可能返回 HTML 错误页面。可以先检查文件类型和大小:
file package.tar.gz
ls -lh package.tar.gz如果文件类型显示为 HTML,请删除错误文件并重新下载。
下载速度没有提升
实际速度受代理节点、源站状态、文件大小和当前网络影响。建议对官方地址和代理地址分别进行测试,再选择更稳定的方式。
注意事项
- 公共代理不提供稳定性保证,重要任务应准备 GitHub 官方地址作为回退方案。
- 只通过公共代理下载公开资源,不要提交账号密码、Token 或私有代码。
- 执行来源不明的脚本前应先检查内容,避免直接使用
curl ... | bash。 - 对模型、安装包和可执行文件,建议使用项目官方提供的哈希值或签名进行校验。
