求助:如何重现Git Fetch操作时要求输入密码的Bug?
重现Git Fetch要求输入密码场景的可行思路
清除已保存的凭证
- macOS系统下,通过命令删除对应平台的钥匙串凭证:
security delete-internet-password -s github.com(Github)或security delete-internet-password -s bitbucket.org(Bitbucket) - 取消Git的全局和仓库级凭证助手设置:执行
git config --global --unset credential.helper,再进入目标仓库执行git config --unset credential.helper
- macOS系统下,通过命令删除对应平台的钥匙串凭证:
切换仓库远程地址为HTTPS格式
- 将远程地址从SSH格式(如
git@github.com:xxx/repo.git)改为HTTPS格式(如https://github.com/xxx/repo.git),SSH依赖密钥认证通常不会触发密码输入,HTTPS才会触发验证请求
- 将远程地址从SSH格式(如
禁用Git凭证缓存
- 强制Git不使用任何凭证助手:
git config --global credential.helper "",这样Git不会自动读取或保存凭证,每次执行fetch都会弹出输入提示
- 强制Git不使用任何凭证助手:
故意使用错误的访问凭证
- Github和Bitbucket目前要求用个人访问令牌(PAT)替代密码,首次输入错误的PAT或旧密码,验证失败后,后续fetch会持续触发输入请求;或者完全不配置凭证,首次fetch就会直接要求输入
修改仓库权限触发验证
- 在平台的仓库设置中,暂时移除你的账号对该仓库的读权限,执行fetch时会因权限不足触发身份验证请求,要求输入有效凭证
尝试旧版本Git(可选)
- 部分新版本Git与系统凭证管理集成更紧密,自动处理凭证的逻辑更完善,使用2.20版本之前的Git,更容易触发手动输入密码的场景
内容的提问来源于stack exchange,提问作者Renee Petit
相关产品推荐
相关产品推荐

