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

news/2025/3/4 12:11:35/

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

一、背景

应该是很多小伙伴碰到过的问题:想从 GitHub 上面 clone 项目,很多情况下会慢的离谱,等待好久后报错:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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 设置代理模式(亲测有效)

需要用到几个命令。

1.设置代理

全局代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

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

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

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

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

2.查询是否代理

查询当前的 git 环境是否使用了代理。

查询全局代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

查询局部代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

查询对 github 进行的代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

3.取消代理

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

取消全局代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

取消局部代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

取消对 github 进行的代理:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

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

4.注意代理端口

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

三、复制项目到码云(比较麻烦)

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

1.注册码云

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

2.项目导入码云

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

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

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

四、修改 hosts 文件(亲测无效)

搜 GitHub clone 慢的问题,这种方法在网上最常见,但我的环境上是没有任何效果的。

方法如下,原理很容易理解,了解一下即可。

1.域名 DNS 解析找到 ip

ping 下列三个域名,或者直接到IPAddress.com 查询,得到它们对应的 IP 地址。

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

github.com
github.global.ssl.fastly.net
codeload.github.com     

最好每一次下载前都重新查询一下 IP 地址,确保每一次都是最新地址。

2.修改 hosts 文件

Windows 下在 C:/Windows/system32/drivers/etc/hosts。 Ubuntu 等 Linux 系统一般在 /etc/hosts

在 hosts 中添加如下内容:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

# Github
192.30.253.112 github.com
199.232.5.194 github.global.ssl.fastly.net
140.82.113.10 codeload.github.com       

3.清除本地 DNS 缓存 改完之后立刻刷新下本地的 DNS 缓存,下面这个是 Windows 操作系统的命令,其它操作系统的可自行上网查下。

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

ipconfig /flushdns

五、调整 git 的传输缓存(亲测无效)

这个方法我试了下,感觉没什么明显的效果。

当前环境执行一行 git 命令:

代码语言:javascript

代码运行次数:0

复制

Cloud Studio代码运行

git config --global http.postBuffer 524288000

不过这个命令可能在另一种场景下有用,就是:

在进行 git push 操作时,出现 500 错误,根据错误信息判断是文件过大所致。

因为 Git 默认设置 http post 的缓存为 1M,如果遇到大文件,需要调整 post 缓存,例如调整到 500M。


http://www.ppmy.cn/news/1576537.html

相关文章

开放鸿蒙认证,OpenHarmony兼容性认证介绍

Ⅰ、OpenHarmony开放鸿蒙兼容性测试认证:使用官方测试套件,对照PCS自检表中的必测项,在本地搭建的环境中对伙伴设备进行预测,直至取得合格的兼容性测试报告。 注:2025年01月01日起,不支持新产品基于老分支…

体育数据分析:竞技表现优化与商业价值挖掘的技术范式

体育数据分析作为一门交叉学科,正在重塑现代体育产业的发展轨迹。通过多源数据采集、机器学习建模和商业智能分析,体育数据分析已经形成了完整的技术体系和应用生态。本文将深入探讨体育数据分析的技术架构、应用场景和商业价值。 一、数据采集与处理技术…

Sui 携手 RedStone 将 BTC 功能引入链上,进一步扩展 BTCfi 生态

领先的跨链数据预言机 RedStone 现已在 Sui 上线。RedStone 为超过 140 个 DeFi 协议提供价格数据,确保价格准确性,并加速 BTC 支持的 DeFi 发展,进一步加强 Sui BTCfi 生态。这一扩展将 RedStone 的预言机解决方案引入增长最快的 Layer 1 生…

OpenWebUI提示器:Prompt工程的“智能助手”还是“自动化革命”?

引言:当AI对话成为日常,如何让模型更懂你? 在AI技术爆炸式发展的今天,从写邮件到生成代码,大型语言模型(如ChatGPT、Claude等)已深入日常场景。但你是否遇到过这样的问题? “为什么…

Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?

为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss? 在使用 PyTorch 时,我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单,但背后到底是怎么回事?为什么这两个分开的功能加起来就等于…

【鸿蒙操作系统】- 1:实习阶段的一些总结

本文目录 1. 序2.鸿蒙与欧拉的概念微内核LiteOS鸿蒙微内核POSIX标准 3.实习干了些什么身份鉴别访问控制恶意代码防范安全审计入侵防范性能压测检查系统版本网络测试常见的linux测试命令 1. 序 之前在某国企实习的时候,有幸参与了鸿蒙系统、鸿蒙欧拉的项目&#xff…

专业便捷PDF软件,即开即用

PDF文件因其小巧的体积、便捷的分享与存储方式,以及卓越的安全性,已成为学习、企业及各类机构中不可或缺的文件格式。无论是在学术研究、课程资料、商业报告还是合同文件中,PDF都能有效保持原有的格式和布局,确保内容在不同设备和…

多个pdf合并成一个pdf的方法

将多个PDF文件合并优点: 能更容易地对其进行归档和备份.打印时可以选择双面打印,减少纸张的浪费。比如把住宿发票以及滴滴发票、行程单等生成一个pdf,双面打印或者无纸化办公情况下直接发送给财务进行存档。 方法: 利用PDF24 Tools网站 …