【为什么】更改github账号之后,一行git push命令事故现场

384 阅读2分钟

写在前面

今天给电脑换了个github账号,于是重新生成并配置了SSH key,然后配置了git user.name 和 email,本以为万事大吉的时候,当我执行git push命令的时候,开始了接二连三的跳坑之旅。不曾想一直使用的git工具,居然有这么多不为人知的秘密。

第一次配置github环境的朋友可以参考:SourceTree使用SSH方式连接本地以及GitLab仓库

第一个坑:Github旧账号残留认证

遇到的第一个坑是:虽然git config/ssh key更新了配置,但是git push时仍然使用的是旧的github账号登录认证。

remote: Permission to userA/repo.git denied to userB.
fatal: unable to access 'https://github.com/userA/repo.git/': The requested URL returned error: 403

所以解决方法就是要删掉旧的github账号:

MacOs的具体操作

在应用程序中找到钥匙串应用,右上角搜索查找github相关的钥匙串,删掉即可;

image.png

这里我删了好几次才删掉的,原因没有注意,貌似是要输入密码之后才能删除;

Windows的具体操作

打开 控制面板–>用户账户–>凭据管理器–>管理Windows凭据

image.png

查找github相关的凭据,删掉。

image.png

这一步是删除了系统中缓存的github账号密码认证信息。

然后高高兴兴继续git push,结果又被现实打了一巴掌。

第二个坑: Git init中过期信息

终于把旧的Github账号信息删除之后,继续git push居然还报错没权限:

fatal: unable to access 'https://github.com/Ryan906k9/SpotmicroaiT/': LibreSSL SSL_connect: Operation timed out in connection to github.com:443 

一番查找之后,了解到是要删掉仓库的.git文件,重新操作一遍:

# git仓库初始化
git init
# git 配置主分支名为main
git config --global init.defaultBranch main 
git branch -m main
# git 关联远程仓库
git remote add origin https://github.com/xxx/xxx.git

经过这样一番操作之后,继续执行git push命令

git add .
git commit -m '...'
git push -u origin main

成功了,开森...

image.png

写在后面

记录下跳坑的过程,因为其中百度各种报错,经常搜不到有用信息,各种试错,所以记录下成功可行的链路,希望有相同情况的朋友可以参考一下,少走些弯路。

谢谢阅读,如果这篇文章有帮助到你,请点个赞吧。如果你遇到相同情况,操作之后没哟成功,欢迎在评论区留言,我会第一时间尽我所能帮助你的,谢谢🙏。