git命令github拉取推送代码超时报错

背景

使用魔法科学上网之后,github的页面可以正常访问,但是拉取代码和推送代码还是一直报错.

报错信息内容 Failed to connect to github.com port 443: Timed out

其实本质是因为代理设置的不正确

我们需要正确的配置代理才能访问github下的git资源.git目前支持代理协议有 HTTP(S)/SOCKS4/SOCKS5.

基于HTTP 代理配置格式如下:

git config --global http.proxy http://[proxy]:[port]

大多数情况下,我们并不需要全部git资源都需要通过代理访问, 仅仅某些特定的git库需要通过代理设置,针对特定域名的代理配置就更有实际意义.

git config --global http.[URL].proxy  http://[proxy]:[port]

这里的URL指向特定git资源的地址,可以是域名,可以是IP,例如:

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

上述配置意为通过 http://127.0.0.1:7890 代理访问 github.com .

如果要针对https配置独立的代理, 可以将配置设置为:

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

如果代理服务使用SOCKS4/SOCKS5协议

基于SOCKS的配置如下:

git config --global http.proxy socks5://[proxy]:[port]
git config --global https.proxy socks5://[proxy]:[port]

验证代理配置
代理配置操作完后, 可以通过 git config --global -l 来查看完整的全局配置

git config --global -l

关闭代理配置
要取消代理配置可以使用 --unset 选项.

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

查看代理配置
要查看任何 git config 配置,可以使用 --get 选项

git config --get http.proxy
git config --get https.proxy

代理配置切换

如果需要经常需要切换代理配置的话, 尽量还是构建一个简单易用的脚本,方便我们快速操作, 这里整理了一个 Shell 脚本.

添加一个git_proxy.sh脚本

# vim git_proxy.sh

添加如下内容:

#!/bin/bash
case $1 in
 
on)
git config --global http.proxy ' http://127.0.0.1:7890' 
git config --global https.proxy ' http://127.0.0.1:7890'
;;
 
off)
git config --global --unset http.proxy
git config --global --unset https.proxy
;;
 
status)
git config --get http.proxy
git config --get https.proxy
;;
esac
exit 0

这样就可以使用git_proxy.sh on,git_proxy.sh off,git_proxy.sh status命令来快速的开启,关闭,查看代理

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值