【Github】解决 git pull不能拉取 HTTP协议的 Git项目
老问题,新答案
摘要
本文的内容是要解决git使用过程中遇到的错误
- fatal: unable to access 'https://xxx@github.com/xxx/xxx.git/': The requested URL returned error: 403
- OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
话题范围
- Git 使用 HTTPS协议
- 适用人群:MacOS和Windows用户
- Proxy的设置
笔者偏好
在协议的选择上,个人推荐HTTPS,因为https协议方便设置代理。
外文:SSH和HTTPS的优缺点对比
设置了代理的时候,会出现这个错误,网络上给出的解决方案(这个方案不合理):
反驳网络上给出的解决方案
条目 | 代码 | 解释 |
---|---|---|
取消http.proxy | git config --global --unset http.proxy |
我的网络直接连接github服务器有问题才配置的代理,unset proxy是本末倒置。 |
取消ssl校验 | git config --global http.sslVerify false |
ssl是HTTPS协议的内容,取消SSL校验,那等于是历史倒退,IT人不能开历史倒车,思想不能滑坡。 |
于是,科学的解决方案是:
通用解决方案
- 检查
.gitconfig
,是否有无效的Http.proxy
,https.proxy
。 - Linux以及MacOS用户:检查
http_proxy
、https_proxy
、all_proxy
- Windows用户额外检查系统环境变量:
http_proxy
、https_proxy
、all_proxy
- 检查
git remote -v
是否添加了https的origin项目地址。 git remote add origin https://github.com/slankka/xxxx.git
安全话题
https://username:password@github.com/
,这样会暴露自己的明文密码或者AccessToken,是不太好的方式。
更新凭据管理器
Windows 用户使用凭据管理器 设置密码
MacOS 用户适用钥匙串
这个方法适用人群
- 企业用户
- 学生、个人用户
如果仍旧认证失败
- 取消缓存的git密码
git config --unset credential.helper
或者git config --system --unset credential.helper
- 如果密码更换过,去Windows凭据管理器,更新https协议的git密码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!