Github 仓库 git clone 速度过慢解决方法!

当从GitHub克隆项目速度慢时,可以通过设置git代理或迁移项目至码云解决。代理设置包括全局和局部,取消代理时需注意端口。码云导入GitHub仓库可提高克隆速度,但操作较繁琐。

Github 仓库 git clone 速度过慢解决方法!

很多时候想从 GitHub 上 clone 一个仓库,都会遇到速度慢的问题,而且经常连接失败,这里给出有效解决方案。


背景

有时会遇到从GitHub上clone项目,速度仅有几十KB,而且经常链接失败,经过我亲测,给出有效的解决方法

fatal: early EOF
fatal: the remote end hung up unexpectedly
fatal: index-pack failed
error: RPC failed; curl 18 transfer closed with outstanding read data remaining

今天遇到这个问题,网上查了许多方法,总结了一些方式。

一、git 设置代理模式(已解决)

设置代理

全局代理

# 实测后,用下面这条就能实现加速 clone 的效果,且能避开一些设置证书的坑
git config --global http.proxy 127.0.0.1:1082

局部代理 在 github clone 的仓库内执行:

# 实测后,用下面这条就能实现加速 clone 的效果,且能避开一些设置证书的坑
git config --local http.proxy 127.0.0.1:1082

只对 github 进行代理,对国内的仓库不影响:

git config --global http.https://github.com.proxy 127.0.0.1:1082

取消代理

取消当前 git 环境使用的代理,恢复直连模式。

取消全局代理:

git config --global --unset http.proxy
git config --global --unset https.proxy

取消局部代理:

git config --local --unset http.proxy
git config --local --unset https.proxy

取消对 github 进行的代理:

git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy

注意代理端口

要注意的是,上面的 127.0.0.1:1081 这个地址是我自己的代理地址,每个人都需要查看自己的端口是不是也是 1081,同时也要区分 socks 端口和 http 端口,因为我这里主要是用的 https 方式来 clone GitHub 项目。

二、复制项目到码云(没试过)

如果没有代理,这也是一种有效的方法,缺点是步骤太麻烦。

1. 注册码云

码云(Gitee)是个基于 Git 的代码托管和研发协作平台,简单理解就是国产的 GitHub,具体的注册方式见官网。

2. 项目导入码云

如果你要在 GitHub 上 clone 的项目是别人的,就先要将这个项目 fork 到自己的 GitHub 账号下。

打开码云,通过「导入 GitHub 仓库」功能,将 GitHub 上的项目复制到码云。

导入完成后再从码云下载你刚刚需要的项目到本地,这个时候速度就可以了。

总结

这两个方法都挺有效,像修改本机hosts文件调整 git 的传输缓存效果不明显。

### 如何加速 GitHub 克隆项目的速度 为了有效解决 GitHub 克隆项目速度慢的问题,可以采用多种方法优化克隆流程并提高效率。以下是几种常见的解决方案: #### 使用国内镜像站点 在国内网络环境中,由于国际带宽限制等因素,直接从 GitHub 进行克隆可能较为缓慢甚至不可用。此时可以选择使用国内的 Git 镜像服务来替代官方源。例如,可以通过以下地址获取项目的镜像版本[^1]: ```bash https://gitcode.com/gh_mirrors/github3/github ``` 通过上述链接替换原始仓库 URL 后重新执行 `git clone` 命令即可完成操作。 #### 利用 SSH 协议代替 HTTPS 相较于 HTTPS 方式而言,SSH 不仅能够提供更高的安全性,在某些特定场景下还能带来更快的数据传输速率以及更便捷的身份验证机制。如果尚未配置过 SSH 密钥,则需先按照如下指令创建一对新的密钥文件[^3]: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` 之后将公钥内容复制粘贴至个人 GitHub 账户设置页面内的 SSH Keys 区域里;最后切换到基于 SSH 的远程地址形式来进行后续拉取动作。 #### 实施浅层克隆策略 当只需要部分历史记录而非整个提交链表时,“--depth”参数允许我们指定只下载最新几次更改的信息而不是全部内容,从而大幅减少所需时间与资源消耗量[^2]。具体做法是在原有命令基础上附加此选项作为额外参数之一: ```bash git clone --depth=1 git@github.com:username/repository.git ``` 以上三种途径均有助于改善因地理位置差异所引发的各种不便之处,并最终达成高效稳定的代码同步目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值