git push提示找不到askpass.sh文件,每次推送需重复输入凭据如何解决
报错信息
$ git push fatal: cannot run /snap/code/79/usr/share/code/resources/app/extensions/git/dist/askpass.sh: No such file or directory
解决方案
方案1:配置Git持久化凭据存储(最快生效)
该方案可以解决每次推送需要重复输入用户名和Token的问题:
- 执行全局配置命令:
git config --global credential.helper store - 接下来执行一次
git push,手动输入用户名和Personal access Token,凭据会被自动持久化保存,后续推送无需重复输入 - 如果你只想让该配置对当前仓库生效,去掉命令中的
--global参数即可
方案2:修复Snap版VS Code的askpass路径错误
报错根因是Snap安装的VS Code内置的Git辅助验证脚本路径不存在,如果你是在VS Code内置终端执行推送操作,可以通过以下方法修复:
- 先升级Snap版VS Code到最新版本,修复旧版本的文件缺失问题:
sudo snap refresh code - 如果不想升级,可在终端执行命令临时禁用错误的askpass配置:
unset GIT_ASKPASS,执行后再运行git push就不会调用不存在的脚本 - 想要永久生效的话,将
unset GIT_ASKPASS添加到你的shell配置文件(/.bashrc、/.zshrc等,对应你使用的shell类型),保存后执行source ~/.bashrc(对应你的配置文件名)即可
方案3:切换为SSH协议连接Github(一劳永逸)
直接规避HTTPS连接的凭据验证和askpass相关问题:
- 先在本地生成SSH密钥,将公钥添加到Github账号的SSH密钥列表
- 进入本地仓库目录,执行命令修改远程仓库地址:
git remote set-url origin git@github.com:<你的Github用户名>/<仓库名>.git - 后续推送无需输入账号凭证,也不会触发该报错
内容的提问来源于stack exchange,提问作者Sreerag N Varier
相关产品推荐
相关产品推荐

