我开始使用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/'

当前回答

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

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

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

其他回答

下面这篇文章:

您可以将GIT_SSH环境变量设置为PuTTY的plink.exe程序。

(然后使用pageant.exe程序作为身份验证代理。)

一般来说,您可以使用内置的凭据存储设施:

Git配置——全局凭据。辅助存储

或者,如果你在Windows上,你可以使用他们的证书系统:

Git配置——全局凭据。辅助wincred

或者,如果你在macOS上,你可以使用他们的凭据系统:

Git配置——全局凭据。辅助osxkeychain

第一种解决方案在大多数情况下是最优的。

对于我来说,我已经用SSH密钥设置了远程存储库,但是Git无法找到它们,因为HOMEDRIVE环境变量由于公司的域策略被自动设置为网络共享。在启动代码之前更改shell中的环境变量。导致Visual Studio Code继承正确的环境变量和voilà在Git输出窗口中不再有连接错误。

现在我只需要弄清楚如何覆盖域策略,因此HOMEDRIVE总是指向我的本地c:\users\marvhen目录,这是.ssh目录的默认位置。

请按照以下步骤进行处理。

卸载Visual Studio Code和Git软件,然后重新安装。将Git存储库克隆URL从SSH更改为HTTPS。

你应该能够像这样设置你的凭证:

git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git

你可以像这样获取远程URL:

git config --get remote.origin.url