You need to enable JavaScript to run this app. 为何在Android Studio终端执行拉取操作时Github始终要求输入登录凭证
优惠活动
大模型
产品
解决方案
定价
更多

为何在Android Studio终端执行拉取操作时Github始终要求输入登录凭证

Android Studio拉取GitHub仓库反复弹凭证报错的修复方案

核心矛盾解释

你遇到的“同样的凭证终端能过、Studio弹窗报错”的问题,本质是两套独立的凭证校验逻辑不互通导致的:

  • 终端侧之所以能正常通过,是因为第一次拉取时输入的正确凭证已经被系统缓存,后续操作会直接读取缓存不会触发重新校验
  • 而Studio弹窗弹出的校验窗口是Git Credential Manager(GCM)触发的,它的校验规则和终端缓存完全独立:GitHub当前已禁用HTTPS协议下的账号密码直连,这个弹窗要求输入的不是你的GitHub账号登录密码,而是个人访问令牌(PAT),你拿日常的账号登录密码去填必然会校验失败
  • 之前配置SSH密钥没生效,基本是因为仓库的远程地址还停留在HTTPS形式,根本没有走SSH校验链路,配置的密钥自然不会被触发

分步操作指南

1. 先确认当前仓库的远程连接协议

在Android Studio内置终端执行命令:
git remote -v
根据输出结果判断当前链路:

  • 输出为https://github.com/xxx/xxx.git:说明全程走HTTPS协议,SSH配置完全没参与链路
  • 输出为git@github.com:xxx/xxx.git:说明走SSH协议,弹窗是Studio自身的账号授权模块触发,和Git拉取链路无关

2. 对应场景解决凭证报错

场景A:坚持使用HTTPS协议拉取

  • 不要在弹窗中输入GitHub的网页登录密码,前往GitHub后台生成一个具备repo权限的经典版个人访问令牌(PAT)
  • 打开对应系统的凭证存储模块:Windows为「凭据管理器-普通凭据」、Mac为「钥匙串访问-密码」,删除所有和github.com相关的旧缓存条目,避免旧的错误凭证覆盖新输入的内容
  • 重新触发拉取操作,在弹窗中用户名填你的GitHub账号名,密码栏粘贴刚才生成的PAT,即可通过校验

场景B:使用已配置的SSH密钥免密拉取

  • 在终端执行命令将仓库远程地址强制切换为SSH形式:
    git remote set-url origin git@github.com:你的用户名/你的仓库名.git
  • 切换完成后执行git ls-remote验证SSH链路连通性,链路通了之后Studio拉取操作就不会再弹出HTTPS的凭证输入窗

3. 消除Studio与终端的凭证逻辑冲突

  • 打开Android Studio设置页,进入版本控制-GitHub配置板块,删除所有缓存的错误GitHub账号条目,选择通过官方OAuth流程重新授权登录
  • 确认设置中Git可执行文件的路径,和终端环境下使用的Git路径完全一致,避免两个环境调用不同版本的Git、走独立的凭证存储逻辑,导致同一份凭证一个校验通过、一个校验失败

终端侧的凭证输入界面参考示例:
终端凭证输入界面


内容的提问来源于stack exchange,提问作者rg_rg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 13:57:03