重新生成Git细粒度令牌后Push失败,使用未配置的GitHub账户
解决Git推送时使用错误账户的问题
1. 检查仓库本地配置
全局配置正确不代表仓库本地配置没问题,进入你的代码仓库目录,执行:
git config --list
查看输出里的user.name、user.email是否为错误账户,或者remote.origin.url里是否硬编码了旧用户名(比如https://old-user@github.com/xxx/xxx.git)。
- 如果本地用户信息错误,执行以下命令修正:
git config user.name "你的正确用户名" git config user.email "你的正确邮箱" - 如果Remote URL带了旧账户,更新远程地址:
git remote set-url origin https://github.com/你的用户名/仓库名.git # 若使用SSH协议,替换为SSH地址:git@github.com:你的用户名/仓库名.git
2. 清除凭据管理器缓存的旧账户
Git会自动缓存凭据,可能旧的错误账户凭据还在生效,根据你的系统操作:
- Windows:打开「控制面板→用户账户→凭据管理器→Windows凭据」,找到所有和
github.com相关的条目,右键删除。下次推送时会提示输入新的细粒度令牌。 - macOS:打开「钥匙串访问」,搜索
github,找到对应的「互联网密码」条目,右键删除。推送时重新输入令牌即可。 - Linux:如果使用
libsecret作为凭据助手,可通过图形工具(如Seahorse)搜索并删除GitHub相关凭据,或执行git config --global credential.helper cache --timeout=0临时清除缓存。
3. 检查系统级Git配置
全局配置(--global)之上还有系统级配置,执行以下命令查看:
git config --system --list
如果发现错误的user.name或user.email,用管理员权限修正:
sudo git config --system user.name "你的正确用户名" sudo git config --system user.email "你的正确邮箱"
4. 验证新细粒度令牌的权限
确保你重新生成的细粒度令牌具备对应仓库的读写权限:令牌的仓库范围要包含你推送的仓库,权限勾选「Contents(读写)」等必要选项。
完成以上步骤后,再尝试git push,应该会使用正确的账户和新令牌进行验证。
内容的提问来源于stack exchange,提问作者Rockwell Rice
相关产品推荐
相关产品推荐

