Windows 10下打开git-gui时Git无法读取密码的问题求助
Git fetch报错(Git GUI开启时)的原因与解决办法
问题背景
在Windows 10的Windows Terminal中使用Git v2.47.0时,若同时打开git-gui窗口,执行git fetch --all会触发以下错误:
error: failed to execute prompt script (exit code 5) fatal: could not read Password for 'https://shreedhark@github.com': No such file or directory
关闭git-gui窗口后命令可正常执行,此前功能正常,近期(几周前)出现该问题,当前Git credential.helper设置为manager。
可能原因
- 凭证助手会话冲突:Git GUI启动时会占用或锁定
manager凭证助手的交互会话,导致终端中的Git进程无法正常调用助手获取密码,进而触发脚本执行失败的错误。 - 版本兼容性问题:Git v2.47.0对凭证助手的调用逻辑有更新,旧版
manager助手(而非manager-core)适配性不足,近期的Git或凭证助手自动更新触发了该冲突。
解决步骤
1. 切换至新版凭证助手
旧的manager助手已被manager-core替代,新版兼容性更强,执行以下命令全局切换:
git config --global credential.helper manager-core
切换完成后,重启Git GUI和Windows Terminal,再次测试git fetch --all。
2. 禁用Git GUI的凭证缓存锁定
若不想切换助手,可尝试关闭Git GUI对凭证缓存的锁定:
- 打开Git GUI,点击顶部菜单栏「Edit」→「Options」
- 在「Credentials」选项卡中,取消勾选「Lock credential cache when GUI is running」(若存在该选项)
- 保存设置后重启Git GUI,重新测试命令。
3. 回退Git版本至稳定版
如果是Git v2.47.0本身的兼容性问题,可卸载当前版本,安装之前能正常工作的版本(如v2.46.0),从Git官方版本归档页面获取对应安装包。
4. 清除无效凭证缓存
缓存的异常凭证可能引发冲突,执行以下命令清除GitHub相关的全局凭证缓存:
git credential-manager-core erase https://github.com
之后重新执行git fetch --all,按照提示重新输入账号密码即可。
内容的提问来源于stack exchange,提问作者Shreedhar Kotekar
相关产品推荐
相关产品推荐

