我开始使用Visual Studio Code,我试图将我的测试项目保存到GitHub,但Visual Studio Code总是要求我的GitHub凭据。

我已经在我的PC上安装了GitHub Desktop和Git。我已经跑了:

 git config --global credential.helper wincred

但是Visual Studio Code仍然在要求凭证。

我该如何解决这个问题?

下面是我的.gitconfig文件,位于用户配置文件文件夹中:

    [filter "lfs"]
    clean = git-lfs clean %f
    smudge = git-lfs smudge %f
    required = true
[user]
    name = ddieppa
[user]
    email = fake@live.com
[credential]
    helper = wincred

下面是弹出窗口要求凭据:

我在弹出窗口中输入了我的GitHub凭证,但仍然在Visual Studio Code中的Git输出窗口中得到这个错误:

remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'

当前回答

打开Visual Studio Code的用户必须与执行Git命令的用户相同。然后在终端中执行如下命令。

git config --global credential.helper store
git pull

在下一个操作push或pull中,您将不会看到它请求Git凭据。

其他回答

我设法通过执行以下步骤来阻止这种情况。

卸载GitHub Desktop(我不确定这是必要的) 卸载凭证管理器:cd“C:\Program Files\Git\mingw64\libexec\ Git -core”,然后执行Git - Credentials - Manager .exe卸载 重置凭证帮助使用wincred: git config——global credential。辅助wincred 使用Visual Studio Code来推动一些更改并重新输入凭证。

注意:我使用个人访问令牌作为密码。

下面是我在电脑上解决这个问题的方法:

开放Visual Studio代码 进入菜单文件→首选项→设置 在User选项卡下,展开Extensions并选择Git 在右侧窗格中找到Autofetch并取消选中它

使用不带密码短语的SSH密钥。

也许这对一些人来说是显而易见的(对我来说不是)。如果你绝对需要密码,这也不能解决问题,但在我使用Mac的情况下,这是一个不错的妥协。

(这个答案不是特定于GitHub,而是我使用BitBucket,但它也可以在GitHub中工作,因为概念是相同的)

就我而言,我使用的是Bitbucket应用程序密码,它总是要求我进行身份验证。

停止自动读取并不能解决问题,因为我一天要拉和推好几次,每次输入应用程序密码都很糟糕。

此外,我需要将应用程序密码存储在不安全的地方,这也是我不想使用凭证的原因。助手存储,它以明文存储密码,而不是使用凭据。助手wincred,它是加密的。

当对话框提示我使用浏览器而不是应用程序密码时,我要求使用浏览器登录,这是可行的,原因超出了我的理解。现在它不再要求凭据了(我不得不暂时改变我的默认浏览器,因为我工作时使用的bitbucket帐户不在我的默认浏览器中,对话框尝试使用默认浏览器进行身份验证)。

在与这样的事情斗争了一段时间后,我想我想出了一个很好的解决方案,尤其是在GitHub和Bitbucket上有多个账户的时候。然而,对于Visual Studio Code,它最终从Git Bash终端启动,这样它从Bash会话继承了环境变量,并且它知道要查看哪个ssh-agent。

我仍然很难找到一个地方来获取我需要的信息。另外,自2017年以来,ssh-agent只有在您尝试访问存储库时才会提示您输入密码短语。

我把我的发现写在这里,如果有人感兴趣的话。