You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VS2017操作GitHub无法拉取/推送,推送时报错求助

解决Git推送GitHub时的cannot spawn askpass及VS2017同步失败问题

我之前在使用Git推送到GitHub时也碰到过完全一样的错误,连VS2017同步代码也跟着罢工,折腾了好一会儿才搞定,给你分享几个靠谱的解决办法:

一、修复Git的askpass配置问题

这个错误核心是Git找不到用于弹出密码输入窗口的askpass工具,同时终端提示被禁用导致无法手动输入账号信息。先从Git配置入手:

  • 打开命令提示符(CMD)或者Git Bash,执行以下命令清空全局的askpass配置,让Git回到终端交互式输入的方式:
    git config --global core.askpass ""
    
  • 执行完后,尝试在命令行里拉取或推送一次代码,这时候应该会弹出终端提示让你输入GitHub的用户名和密码,输入正确后再试VS2017的同步操作。

二、配置Git凭据助手,避免重复输入(推荐)

如果不想每次都手动输账号密码,可以让Git记住你的凭据,不同系统有不同的配置方式:

Windows系统(适配VS2017)

  • 使用Windows凭据管理器来存储账号密码,执行:
    git config --global credential.helper manager-core
    
    这个命令会让Git调用Windows自带的凭据管理器,你只需要输入一次账号密码,之后Git会自动从凭据管理器里读取,VS2017也能正常使用这个配置。

跨平台通用方式

  • 如果想把密码存在本地文件里(注意安全性),可以用:
    git config --global credential.helper store
    
    第一次输入账号密码后,Git会把凭据存在用户目录下的.git-credentials文件里,后续操作就不用再输入了。

三、切换到SSH协议(更安全的长期方案)

如果不想用HTTPS协议的账号密码验证,可以换成SSH密钥的方式,这样完全不用输入密码:

  1. 生成SSH密钥(打开Git Bash执行):
    ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
    
    一路回车默认配置即可,生成的密钥会存在~/.ssh目录下。
  2. 复制公钥文件(id_ed25519.pub)里的所有内容,登录GitHub后进入「Settings」→「SSH and GPG keys」,点击「New SSH key」粘贴进去保存。
  3. 把本地仓库的远程URL换成SSH格式:
    git remote set-url origin git@github.com:你的用户名/你的仓库名.git
    
    之后再拉取或推送代码就不需要输入账号密码了,VS2017也能正常同步。

四、针对VS2017的额外排查

如果上面的配置都做了VS2017还是不行,可以试试:

  • 打开VS2017,依次点击「工具」→「选项」→「源代码管理」→「Git全局设置」,检查「凭据助手」是否设置为manager-core或store,如果不是就改成对应选项。
  • 尝试在VS2017里重新克隆一次仓库,有时候本地仓库的配置缓存会导致问题,重新克隆能解决大部分同步异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:17:25