前言
Github上下载仓库或者克隆仓库,速度基本稳定在 20k 以下,当克隆一些大的仓库时,以这乌龟速度,很容易出现克隆超时的错误,等了几十分钟的下载一夜回到解放前,那种感觉我猜各位或多或少都经历过。本博客汇总了几种亲测可用的方案,很大地提升下载速度,一个大的仓库一分钟左右就可以搞定,也会持续的更新一些可用新方法,希望对你有帮助。
以下方案均来自网络的分享,我只是做整理推荐。感谢那些无私的程序员们。
一、使用 git clone --depth=1 来下载
如果是文件本身过大的话,可以考虑使用:
git clone https://github.com/xxx --depth 1
https://github.com/xxx 是指定要克隆的远程代码仓库的 URL。–depth 1 参数表示只克隆最新的一次提交(默认主分支),而不是完整地克隆整个代码仓库的历史记录。这可以减少下载的数据量,加快克隆操作。
如果我们想只克隆某个指定分支的最近一次 commit,可以使用下面命令:
git clone https://github.com/xxx --depth=1 --branch=xx_branch
用 git clone --depth=1 的好处是限制 clone 的深度,不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度。depth 用于指定克隆深度,为 1 即表示只克隆最近一次 commit。
适合用 git clone --depth=1 的场景:你只是想 clone 最新版本来使用或学习,而不是参与整个项目的开发工作。
git clone --depth=1 后拉取其他分支的方法
cd xxx git fetch --unshallow
这个命令用于将浅克隆(shallow clone)的代码仓库转换为完整克隆(full clone)。在浅克隆中,只克隆了最新的一次提交,而没有完整的历史记录。git fetch 命令用于从远程代码仓库获取最新的提交和分支信息。–unshallow 参数告诉 Git 将浅克隆转换为完整克隆,获取完整的历史记录。执行这个命令后,你将能够访问和操作完整的代码仓库。
二、修改host文件解决
大型网站服务器都不会是只有一台服务器,而是多台服务器组成的集群一起对外提供服务。
使用站长工具测速,找一个速度比较快的服务器。
。
然后,把刚才查到最快的 IP 地址和 Github 域名的字符串放在 hosts 文件最后,Mac 在 /etc/hosts
中,Windows 在 C:\Windows\System32\drivers\etc\hosts
中。
如本人本电脑查到最快的 IP 地址为:140.82.121.4(不同地方速度不同,以个人情况为准)。
最后,刷新 DNS 缓存使增加的映射生效。Mac 刷新 DNS 缓存,在终端输入 sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
,Windows 刷新 DNS 缓存,cmd 命令窗口执行 ipconfig /flushdns
。
执行完这些后,你会发现速度明显快了很多。
三、谷歌浏览器插件加速
为你的浏览器,安装一个插件【Github 加速】。
安装成功后,打开 Github 会看到如下界面,多了一个加速按钮和加速地址。
四、油猴插件和脚本
为你的浏览器,安装一个插件【Tampermonkey】。
然后安装 Github 增强脚本,安装成功后,Code 下方会多出多个加速地址。
五、gitclone.com
这是我用过最爽实用功能最全面的一个方式了。 https://gitclone.com 是一个提供下载缓存的代码下载网站,使用方法十分简单,只需要在仓库地址前面加上 gitclone.com,就可以使速度提升几倍。
例如要克隆 Github 上仓库地址 https://github.com/killer-p/ctool.git 只需将地址改为 https://gitclone.com/github.com/killer-p/ctool.git,在命令行中执行git clone https://gitclone.com/github.com/killer-p/ctool.git
,速度直接起飞!
gitclone 的工作机理是:当开发者第一次经 gitclone.com 代理 clone 项目时,gitclone.com 异步镜像项目,以后有开发者 clone 该项目时,就会利用上 gitclone.com 的本地镜像,而不是从 github.com 上 clone。gitclone.com 会在每天夜间与 github.com 同步。目前 gitclone.com 对 star 超过 1500 的都做了镜像。通过 gitclone.com clone,如果能命中镜像,则速度会达到 1M 多,如果之前未 mirror 过,会随着 git clone 命令建立起镜像,下次 clone 会用到
六、Github 加速下载链接
网站地址:https://github.zhlh6.cn/。
复制 Github 仓库的地址,然后粘贴到第一栏,点击加速!生成加速地址,使用加速地址进行 git clone 下载,下载速度最高能提升到 1M。
七、Github 镜像访问
Github 镜像就是一个跟 Github 一模一样的网站,他会同步 Github上 的资源,国内访问 Github 镜像的速度较快,也可以在镜像下载仓库,平时逛逛 Github 也可以使用镜像,反正比较快,缺点就是不能登录。
注意这个网站不能登录 Github 账户,点击 sign in 会被浏览器拦截。
八、使用码云下载
码云本身支持从 Github 等其他代码托管网站一键导入repo,然后直接从码云上 clone 就会非常方便。
使用方法如下:首先,在码云中创建新仓库,直接选择导入其他网站已有仓库
,
复制仓库的 url,或者直接选择导入 Github 仓库,如下图所示:
等个几十秒,码云把 Github 上的项目拉下来,放在了码云的服务器上,这时候我们就可以从码云下载仓库了。由于码云服务器在中国,下载速度很快。