报错内容举例:
1. Failed to connect to 127.0.0.1 port 7890:Connection refused Pushing to
2. Failed to connect to github.com port 443:Timed out Pushing to
3. fatal: .git/index: index file open failed:Permission denied
修复方案步骤:
1. 修改仓库连接方式:https链接改为SSH链接
1.1 在本地生成SSH Key
1.1.1 在使用SSH链接前需要先在本地生成SSH key
在git bash或其他Linux系统的命令行中输入:
ssh-keygen -t rsa -C 你的github登录邮箱
1.1.2 会有提示:
Enter passphrase (empty for no passphrase):
可以设置密码,也可以不设置,如果设置了密码,每次ssh传输文件时都需要输入密码.
直接enter可以不设置密码.
1.1.3 不管设不设置都会有第二个提示:
Enter same passphrase again:
1.2 在 GitHub 添加 SSH Key
1.2.1 点击GitHub右上角头像,选择下方列表中的`Setting`
1.2.2 选择左侧列表中的SSH and GPG keys
1.2.3 点击右侧绿色的New SSH key
1.2.4 Add SSH Key
Title用于自己区分SSH Key,可随意输入
key中粘贴`id_rsa.pub`文件中的内容
`id_rsa.pub`在前面生成SSH Key的文件中,默认路径是:C:\Users\用户\.ssh
粘贴后点击`Add SSH Key`
2. 修改远端地址
两种方式:
方式一:命令行修改:
# 查看远端地址
git remote -v
# 查看远端仓库名
git remote
# 重新设置远程仓库
git remote set-url origin https://git@github.com/xxx (此处替换为新的SSH地址)
在此处复制自己仓库的SSH地址:
方式二:修改 `.git` 文件夹修改
修改 `.git` 隐藏文件夹下的 `config` 文件内容,将 `[remote "origin"] url`= 修改成你需要替换的新地址
3.测试
输入下面的命令:
ssh -T `git@github.com`
会提示:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入`yes`,回车
最后提示:
You’ve successfully authenticated, but GitHub does not provide shell access.
表示成功
4.补充方案
如果执行完前面的步骤在push时还是报错,可以尝试下面的步骤:
在`id_rsa.pub`所在文件夹中创建名为`config`的文件,注意无后缀
(可以先创建一个txt文件,输入下面的内容并保存后再删除文件名中的`.txt`后置)
User后面修改为自己的github邮箱地址
Host github.com
User xxx@xxx.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
最后记得保存文件,再次尝试push。