Git以>失败了致命错误。无法读取用户名

时间:2017-12-27 20:01:10

标签: git visual-studio visual-studio-2017 azure-devops

我几天来一直在努力解决这个问题。

我无法从特定计算机连接到我的Git项目(存储在VisualStudio.com中)(它可以在我的第二台PC上运行)。每当我尝试同步或克隆我的存储库时,VS2017会询问我的用户凭据(两次),并且我收到以下错误:

  

错误:无法生成askpass:没有这样的文件或目录错误   克隆远程存储库时遇到:Git失败了   致命错误。无法读取用户名   ' https://.visualstudio.com' ;:终端提示已禁用

不记得我是否改变了可能造成这种情况的任何事情......

13 个答案:

答案 0 :(得分:17)

这主要是由凭据管理器记住凭据引起的。您应该删除已存储在Credential Manager中的xxx.visualstudio.com凭据。

例如,如果PC的操作系统是Windows,则可以打开Credential Manager - > Windows凭据 - >在通用凭证下 - >删除git:https://xxx.visualstudio.com等凭据。

enter image description here

然后再次克隆,git将允许您输入repo的凭证。输入可以访问VSTS帐户的用户名(电子邮件地址)和密码后,应该克隆回购成功。

答案 1 :(得分:10)

我没有在Windows凭据中注册任何git凭据,即使在“ VS用户对话框”弹出窗口中选择了Windows用户帐户之后,我仍然收到此错误。

经过一天的尝试,例如为Windows重新安装GIT,我设法通过删除以下文件来解决此问题:“ C:\ Users(profile)\ AppData \ Local \ GitCredentialManager \ tenant.cache”。

在下一次重试时,我的Windows凭据通用列表中显示了一个GIT条目。 See Issue

答案 2 :(得分:5)

只需将Visual Studio更新到最新版本即可。报告此错误并使用最新更新修复。为我工作。

答案 3 :(得分:3)

我有类似的问题。

从VS2017内部推送会失败,生成git-askpass.exe时出现错误

我通过将VS2017 git-core文件夹中的所有文件复制/替换为由Git安装创建的git-core文件夹中的文件来解决此问题。

我可能只需要新的git-credential-manager.exe,但是我替换了所有内容。

到目前为止,没有问题。

VS2017文件夹:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git \ mingw32 \ libexec \ git-core

Git安装文件夹:C:\ Program Files \ Git \ mingw64 \ libexec \ git-core

答案 4 :(得分:2)

clearing credentialsdeleting tenant.cache的组合在过去对我有用-我能够强制重新连接到我的* .visualstudio.com git repo并完全在VS2017内部运行。今天必须通过安装新的VS2019来做更多的事情。在我的案例中,关键是错误的“禁用终端提示”部分(类似于Anuranjan Srivastav对已接受答案的评论)。这次使用命令行工具(在清除凭据之后)进行了简单的“ git fetch”操作,这对我来说很成功-提示输入凭据,并且一切都设置正确了。

答案 5 :(得分:1)

好了,在经历了很多痛苦之后,我设法解决了这个问题(在这一点上,我已经尝试了一切,包括从凭据管理器中删除帐户)。

我启动了Visual Studio 2017,然后打开了存储库,然后转到存储库的 Team Explorer 标签。

我左键单击“同步”选项,然后再次单击“同步链接”按钮以启动拉/推动作。这导致Visual Studio显示一个对话框,要求我选择我的凭据。

但是,我要解决的问题是首先“忘记”我最初要使用的帐户(在右侧的3点图标上单击鼠标左键),然后提示我输入用户名再次输入密码-输入正确的密码,现在应该可以同步了!

答案 6 :(得分:1)

就我而言,这是在我的VS 2019许可证过期时发生的。我联系了服务台,他们给了新的许可证,然后我将其激活,当我尝试使用VS 2019进行获取时,问题开始了。当我在VS 2019中执行Fetch时出现以下错误消息。

Git失败并出现致命错误。无法读取“ https://xxx.visualstudio.com”的用户名:终端提示已禁用

下面是我做的步骤

1)我转到凭证管理器并删除了https://xxx.visualstudio.com的条目。

2)安装了Windows版GIT凭据管理器。 https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases

3)打开命令提示符,然后转到我的本地工作目录。

4)给了命令 git fetch ,然后按Enter键,我收到的消息很少,说明Fetch成功。

5)重新打开VS 2019并执行Fetch,现在它可以工作了。我还测试了Pull,Push等,一切正常。

答案 7 :(得分:1)

我有类似的问题。

我通过以下步骤解决了该问题:

  1. 从Git Bash连接到远程Azure DevOps存储库。
  2. 尝试使用Git命令同步/克隆/拉动/推送存储库。
  3. Git凭据管理器将询问用户凭据(在我的情况下是两次)。提供详细信息。
  4. 它将询问用户名和密码凭据 Username and Password
  5. 可以从此处生成此用户名和密码(克隆->生成GIT凭据): Generate GIT Credentials
  6. 尝试从Visual Studio中进行Git操作。 (应该可以)

请注意,每次执行任何Git操作(拉/推/抓取/克隆等)时,它都会要求输入用户名密码。

我通过以下方法解决了该问题:

运行

git config --global credential.helper store

然后运行

git pull

提供用户名和密码。这些细节将被记住。

答案 8 :(得分:0)

您应该删除凭据,并使用相同的新网址添加,但您应该使用个人访问令牌来生成凭据:https://xxx.visualstudio.com,而不是使用凭据的密码。 ->安全->个人访问令牌。您可以通过选择现有令牌并推送以重新生成它。

enter image description here

并创建新的

答案 9 :(得分:0)

我遇到了同样的问题,无法解决上述问题,也无法解决以下问题,

1)去获取代码位置===> .git文件夹==>配置文件==>打开它。

2)转到[远程“来源”] url =“ dev.azure.com/xxxx/_git/yyyy”复制该URL

3)打开全新的浏览器[icongnito :)]打开复制的网址。

4)它要求登录,只需从您提交的凭据登录即可。 登录并转到文件,然后单击克隆按钮。 enter image description here

5)无需对该url进行任何修改。您可能会想知道您的用户名在前缀中不存在。但是不用担心使用该用户名进行复制。

6)在第2步中粘贴该网址。

7)我还删除了C:\ Users(profile)\ AppData \ Local \ GitCredentialManager \ tenant.cache 文件[稍后添加] 至少对我有用。

旁注:谁知道为什么带有站点的url前缀创建了用户名而不是我的用户名?

答案 10 :(得分:0)

将git更新到最新版本并在管理员命令窗口中运行对我有帮助

答案 11 :(得分:0)

我在Visual Studio 2017 + Bitbucket上托管的Git存储库中遇到了同样的问题。

在每个Git交易中,我得到了Atlassian Bitbucket登录窗口,在其中输入了正确的用户/密码,然后出现了错误: could not read Username for 'https://bitbucket.org': terminal prompts disabled

对我来说有用的是首先手动登录Internet Explorer中的Bitbucket,并可能关闭/接受所有正在等待我的通知/弹出窗口。之后,VS2017的Git再次工作。

我认为他们阻止了VS Git登录过程的成功完成。

答案 12 :(得分:-1)

我在VS2017中遇到了同样的问题,我通过删除以下Git文件夹解决了该问题

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git

删除它后,我执行了一些git操作,然后Visual Studio向我的凭据询问git,然后它可以正常工作。