【git】更换账号登录VSCode后报错remote: Permission to **/**.git denied to ***.

错误场景与原因

由于之前注册了一个新的git账号并且保留在VScode上,最近在常用的旧git账号上建了一个仓库。没有意识到VScode上登录的是另一个账号。我照常拉取仓库更改代码提交到仓库,结果就是没有权限并在新账号的远程仓库中建了一个新仓库并创建了提交。

这不是我想要的效果,我还是想在旧账号中更新仓库。

首先说一下为啥会存在这种情况,后续在记录我具体的解决过程(走弯路过程)。

Git 会缓存你输入的用户名和密码(或 token),即使你已经切换了账户,缓存的凭证仍然会用于认证。如果旧账户的凭证还在缓存中,Git 会继续使用旧账户信息进行推送。

控制面板->凭据管理查看

弯路过程

首先我删除本地仓库相关文件,并且切换VScode中登录的账号。重新拉取仓库,并在旧账号的操作下更新代码提交、推送。但是依然存在下面情况,与之前的新账号操作一样的提示(因为上面提到的原因):

接下来就是解决过程了:

  1. 通过命令git remote -v 查看当前关联的远程仓库

  2. git config user.name和git config user.email 获取的git账号信息都与旧账号保持一致

  3. ssh -T git@github.com查看当前权限,是被拒绝的...

    说明 SSH 认证仍然使用的是之前的 GitHub 账号的 SSH 密钥(后续操作时发现我的github没有进行ssh认证,使用的是https)

  4. 对ssh认证进行配置,在Git Bash中生成密钥,复制公钥提供给GitHub

bash 复制代码
eval  "$(ssh-agent -s)" # 启动SSH代理
ssh-keygen -t rsa -b 4096 -C "email.com" # 生成新的SSH密钥
ssh-add ~/.ssh/id_rsa # 将生成的私钥添加到SSH代理
cat ~/.ssh/id_rsa.pub # 获取公钥内容,并复制

复制公钥后,进入GitHub->SSH and GPG Keys->New SSH key. 新增 new key 将复制的公钥添加进去

bash 复制代码
ssh -T git@github.com # 验证是否认证成功

显示下面内容表示成功:

bash 复制代码
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

到这一步认证成功了!但是我推送依然没有成功,原因有两个:(1)仓库推送的时候使用的HTTPS进行通信;(2)git使用缓存中的旧凭证进行验证 (因为这时候我还没发现缓存旧凭证这回事)

  1. 将仓库https改为ssh认证
    https下我们通过git remote -v 看到的仓库格式如下,是包含https 的
bash 复制代码
origin  https://github.com/***/repo_name.git (fetch)
origin  https://github.com/***/repo_name.git (push)

通过下面命令修改格式:

bash 复制代码
git remote set-url origin git@github.com:***/仓库名.git

这就可以推送啦!

相关推荐
VIP_CQCRE3 小时前
在 OpenCode IDE 中接入 Ace Data Cloud:让 VS Code、Cursor、Windsurf 都能调用统一 AI Coding 能力
vscode·ai编程·开发工具·opencode·acedatacloud
sunburn-4 小时前
Java 排序算法详细教学:从冒泡排序到快速排序
java·开发语言·数据结构·ide·算法
louisgeek4 小时前
Git submodule 子模块
git
imDwAaY4 小时前
6篇文章讲清楚Git:Git 实用技巧:暂存现场、挑选提交与定位 Bug (5/6)
git·后端
life码农4 小时前
PhpStorm或Pycharm中 如何从某个位置全选文字到文件末尾
ide·pycharm·phpstorm
imDwAaY4 小时前
6篇文章讲清楚Git:Git 团队开发实践:从 Pull Request 到版本发布 (6/6)
git·后端
神一样的老师5 小时前
RA-Eco-RA4M2-100PIN-V2.0 开发环境:VSCode + FSP 从新建工程到点亮 LED
ide·vscode·编辑器
索端阳5 小时前
I.MX6ULL 裸机开发:LCD Framebuffer 与 RGB888 学习笔记
笔记·vscode·嵌入式硬件·学习
围炉聊科技6 小时前
你从IDE切到ADE了吗?智能体开发环境赛道地图——智能体基建系列
ide·人工智能
passion6 小时前
CnPack IDE专家包发布1.8.1正式版!
ide·delphi·cnpack