STS4中Git HTTPS模式Push时输入正确用户名密码仍失败问题
STS4 Git Push 凭证校验失败解决方案
核心原因说明
目前主流代码托管平台(Github、Gitlab、Gitee等)均已停止支持HTTPS协议下使用账号登录密码直接进行Git操作,即便未开启双因素验证,也需要使用平台生成的*个人访问令牌(PAT)*代替密码进行校验,这是本次推送失败的最常见诱因。
操作步骤
步骤1:生成对应平台的个人访问令牌(PAT)
登录你的代码托管平台,在账号设置的「开发者设置」/「个人访问令牌」页面生成新的令牌,勾选repo相关的读写权限后保存令牌值(注意仅展示一次,先复制留存)。
步骤2:清除STS内置的旧凭证缓存
STS自带的EGit插件会缓存历史输入的错误凭证,优先读取缓存会导致新输入的正确凭证不生效:
- 打开STS顶部菜单栏的
Window→Preferences(Mac系统为Spring Tool Suite 4→Settings) - 左侧搜索框输入
Git,展开后选择「Configuration」 - 切换到「User Settings」标签页,点击「Add Entry」新增配置:
- 键:
credential.helper - 值:
store
- 键:
- 回到偏好设置主界面,搜索
Security,选择「Secure Storage」 - 切换到「Contents」标签页,展开
GIT节点,删除所有和当前代码托管平台相关的凭证条目 - 重启STS
步骤3:重新执行Push操作
重启后打开项目右键选择「Team」→「Push to Upstream」,弹出凭证输入框时:
- 用户名输入你平台的注册账号名
- 密码栏粘贴刚才生成的个人访问令牌(PAT),不要填账号的登录密码
快速验证方案
如果需要快速排查问题,可以直接把令牌写入远程仓库URL:
- 右键项目 → 「Team」→「Remote」→「Configure Push to Upstream」
- 编辑URI字段,格式修改为:
https://<你的PAT>@<平台域名>/<用户名>/<仓库名>.git
示例:https://ghp_xxxxxx@github.com/zhangsan/test-demo.git - 保存后直接执行Push即可,不会再弹出凭证输入框
对应报错截图:
内容的提问来源于stack exchange,提问作者Mazin Ismail
相关产品推荐
相关产品推荐


