找回密码
 立即注册
查看: 1046|回复: 0

[其它] git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv...

[复制链接]

279

主题

0

回帖

964

积分

超级版主

积分
964
发表于 2024-7-13 14:14:14 | 显示全部楼层 |阅读模式
本帖最后由 Shaw0xyz 于 2024-7-13 16:19 编辑

1. 引言

在使用Git进行版本控制时,有时会遇到连接GitHub失败的问题,报错信息通常为“fatal: unable to access ‘https://github.com/.../.git’: Recv failure: Connection was reset”。这种错误通常与网络配置、代理设置或防火墙有关。本文将介绍几种常见的解决方法,帮助您排除故障并顺利连接到GitHub。

1.1 问题背景

Git通过HTTPS协议与GitHub通信。当Git无法连接到GitHub时,通常会提示上述错误信息。这种情况可能出现在多种场景下,例如克隆仓库、拉取或推送代码。

2. 检查网络连接

首先,确保您的网络连接正常。可以通过访问GitHub网站来检查网络连接。如果无法访问,可能是网络问题导致无法连接到GitHub。

2.1 测试网络连接

在命令行中使用ping命令测试与GitHub的连接:

  1. ping github.com
复制代码


如果无法ping通GitHub,说明网络连接有问题,需要检查网络设置。

3. 检查防火墙和代理设置

有时,防火墙或代理设置会阻止Git访问外部网络。确保防火墙没有阻止443端口的连接,并检查代理设置是否正确。

3.1 检查防火墙

如果使用的是windows防火墙,可以通过以下步骤检查防火墙设置:

(1) 打开“控制面板”。
(2) 选择“系统和安全”。
(3) 点击“Windows Defender防火墙”。
(4) 在左侧菜单中选择“允许应用或功能通过Windows Defender防火墙”。
(5) 确保Git相关应用(如git.exe)在允许的应用列表中,并且允许其通过公用和专用网络。

3.2 检查代理设置

如果使用代理服务器,需要确保Git配置了正确的代理设置。可以通过以下命令设置代理:

  1. git config --global http.proxy http://username:password@proxyserver:port
  2. git config --global https.proxy https://username:password@proxyserver:port
复制代码


如果不再需要使用代理,可以通过以下命令取消代理设置:

  1. git config --global --unset http.proxy
  2. git config --global --unset https.proxy
复制代码


4. 更新Git版本

有时,旧版本的Git可能存在一些问题,更新到最新版本的Git可以解决一些连接问题。可以从Git官方网站下载并安装最新版本的Git。

5. 修改DNS设置

有时,DNS解析问题也会导致无法连接到GitHub。可以尝试修改DNS设置为公共DNS,如Google的DNS服务器(8.8.8.8和8.8.4.4)。

5.1 修改DNS设置

在Windows系统中,可以通过以下步骤修改DNS设置:

(1) 打开“控制面板”。
(2) 选择“网络和Internet”。
(3) 点击“网络和共享中心”。
(4) 选择当前连接的网络,点击“属性”。
(5) 在“网络”选项卡中,选择“Internet协议版本4 (TCP/IPv4)”,点击“属性”。
(6) 选择“使用下面的DNS服务器地址”,输入8.8.8.8和8.8.4.4。

6. 使用SSH连接

如果HTTPS连接持续失败,可以尝试使用SSH协议连接到GitHub。首先,需要生成SSH密钥并添加到GitHub账户中。

6.1 生成SSH密钥

在命令行中使用以下命令生成SSH密钥:

  1. ssh-keygen -t rsa -b 4096 -C "your_Email@example.com"
复制代码


按照提示操作,生成的SSH密钥保存在~/.ssh目录下。

6.2 添加SSH密钥到GitHub

将生成的公钥(~/.ssh/id_rsa.pub)内容复制,并添加到GitHub账户的SSH密钥设置中。登录GitHub,进入“Settings”,选择“SSH and GPG keys”,点击“New SSH key”,将公钥粘贴进去并保存。

6.3 配置Git使用SSH

在项目目录中,使用以下命令将远程仓库的URL更改为SSH格式:

  1. git remote set-url origin <a href="mailto:[email protected]">[email protected]</a>:username/repo.git
复制代码


然后尝试拉取或推送代码:

  1. git pull
  2. git push
复制代码


7. 使用Git命令行选项

在某些情况下,可以通过调整Git的命令行选项来解决连接问题。例如,可以尝试增加连接超时,使用以下命令:

  1. git config --global http.postBuffer 157286400
  2. git config --global http.lowSpeedLimit 0
  3. git config --global http.lowSpeedTime 999999
复制代码


8. 总结

本文介绍了多种解决“fatal: unable to access ‘https://github.com/.../.git’: Recv failure: Connection was reset”问题的方法,包括检查网络连接、防火墙和代理设置,更新Git版本,修改DNS设置,使用SSH连接以及调整Git命令行选项。通过这些方法,您可以排除大多数连接问题,确保顺利访问GitHub进行代码管理。希望本文能为您在实际问题排查中提供有用的参考。









/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & linux ...

~互撩~ TG: @Shaw_0xyz
荔枝学姐爱吃荔枝!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-3 17:28 , Processed in 0.060495 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表