git 删除proxy代理删除后,git clone时还是走的代理?

问题描述

使用git pull拉取github 仓库时,报端口无法连接(2012端口是之前设置的vpn端口),重新设置了新的端口不生效,删除了也不生效

git clone https://github.com/xxxxx/react-template-simple.git                                                      
Cloning into 'react-template-simple'...
fatal: unable to access 'https://github.com/xxxxx/react-template-simple.git/': Failed to connect to 127.0.0.1 port 2012: Connection refused

image.png

尝试的解决方法

  • 删除所有http,https,并验证http,https 代理已经删除
  • 重启终端
  • 重启电脑
git config --global --unset http.proxy
git config --global --unset https.proxy

验证过已经删除了
image.png

参考资料

阅读 6k
1 个回答
首先必须要提及的是,你这个回答写的非常清晰,为回答者提供了清晰的思路。

从你的描述中可以看出,你是从命令行运行 git 命令来 clone 代码。但因为代理问题而无法 clone。

在命令行中使用 git,排查问题要考虑到两个层面:

  • git 的代理是否取消
  • 命令行的代理是否取消

git 的代理是否取消

在 git 中,与代理相关的就是配置,即 git config

在 unix-like 操作系统中软件的配置文件一般都会分为:系统(System),全局(global),本地(local)。其中的优先级为:本地 > 全局 > 系统。关于 git 的配置文件,更复杂,一共分好几层,具体内容可以看 文档

可以在项目文件夹中,使用 git config --list 来查看当前 git 仓库的所有配置项,也可以使用 git config --list | grep proxy 指定查找 proxy。

如果存在,就从本地 -> 全局 -> 系统一层一层查看,找出对应 proxy 的配置文件,删除即可。

命令行的代理是否取消

因为是在命令行中运行 git,命令行本身也可以设置代理。

一般情况下,命令行中都是通过环境变量来设置。你可以在命令行中输入 env 来查看所有环境变量,或者使用 env | grep proxy 来指定查找 proxy。

查找到 proxy 后,使用 unset [proxy_name] 删除即可。比如查找到 https_proxy=127.0.0.1:2012 该环境变量设置了代理,使用 unset https_proxy 来取消代理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进