Github无法连接远程仓库的三种解决方法
最近在使用github拉取和推送项目时,经常会遇到FATAL: unable to access https://xxxxxxxxxxxxxxxx.git/: Recv failure: Connection was reset或Failed to connect to github.com port 443这类报错,尤其是在git push时,几乎无法完成push。这种情况可以尝试以下三种方法解决
#代理git的http/https请求
github远程请求的协议主要是https和SSH,所以这里要做的是对git命令的https流量做代理
git代理有两种设置方式,分别是全局代理和只对github代理,建议只对github代理
代理协议有两种,分别是使用http代理和使用socks5代理,这里演示http代理
注意 : 下面代码的端口号请根据自己实际的代理端口号填写,比如我的代理http端口是10809
全局代理
1 | 使用http代理 |
只对github代理
1 | 使用http代理 |
取消代理
1 | git config --global --unset http.proxy git config --global --unset https.proxy |
设置完成后,进入用户名根路径C:\Users\用户名,查看.gitconfig 文件,如下图所示即为完成设置
#切换SSH连接
检查本机是否安装SSH key
在git bash客户端运行
1 | cd ~/.ssh |
若结果没有id_rsa、id_rsa.pub这两个文件,则创建新的SSH key;若有,则进入步骤3,将SSH key添加到github
创建新的SSH key
1 | ssh-keygen -t rsa -C "your_email@example.com" |
在命令提示符或 PowerShell 中执行以上命令,若遇到询问,全部enter,若没有报错并显示identification、public key、key fingerprint等信息,则说明创建成功
注意 : 此处设置的邮箱若与你的github账号设置的private email相同,则需要登陆github账号,前往settings->emails取消勾选下列选项
添加SSH key到github
到C:\Users\用户名.ssh目录下,使用编辑器打开id_rsa.pub文件并copy里面的内容;
登陆github账号,依次点击settings->SSH and GPG keys->new SSH key,将copy的内容粘贴至key栏,title随便填,key type选Authentication Key,确认无误后点击Add SSH key
验证是否配置成功
1 | ssh -T git@github.com |
若提示You’ve successfully authenticated字样则表示成功
切换本地仓库连接协议
SSH连接配置成功后,前往仓库->code,copy SSH链接,然后在本地clone;
或者在本地仓库根目录下打开power shell运行以下命令,将远程https链接更改为SSH链接
1 | git remote set-url origin git@github.com:xxxx/xxxx.git |
执行以下命令来验证远程 URL 是否已成功更改为 SSH 形式
1 | git remote -v |
#Github Desktop!
如果你使用SSH能正常连接到github的话,那么最简单的就是下载并安装Github Desktop,默认设置就是SSH,无需配置!至于SSH连接不上github该怎么办,由于暂时还没发生,暂不讨论。完!