文章目录
- 前言
- 一、使用 git clone --depth=1 来下载
- 二、修改host文件解决
- 三、谷歌浏览器插件加速
- 四、油猴插件和脚本
- 五、gitclone.com
- 六、Github 加速下载链接
- 七、Github 镜像访问
- 八、使用码云下载
- 参考资料,感谢以下文章
前言
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 也可以使用镜像,反正比较快,缺点就是不能登录。
镜像地址:https://hub.fastgit.org
注意这个网站不能登录 Github 账户,点击 sign in 会被浏览器拦截。
八、使用码云下载
码云本身支持从 Github 等其他代码托管网站一键导入repo,然后直接从码云上 clone 就会非常方便。
使用方法如下:首先,在码云中创建新仓库,直接选择导入其他网站已有仓库,
复制仓库的 url,或者直接选择导入 Github 仓库,如下图所示:
等个几十秒,码云把 Github 上的项目拉下来,放在了码云的服务器上,这时候我们就可以从码云下载仓库了。由于码云服务器在中国,下载速度很快。
参考资料,感谢以下文章
Github下载速度慢 提升github下载速度最新解决方案 跟龟速说拜拜
解决Github不能下载,下载速度慢的小妙招