【问题标题】:Git failed with a > fatal error. could not read Username forGit 因 > 致命错误而失败。无法读取用户名
【发布时间】:2017-12-27 20:01:10
【问题描述】:

这几天我一直在为这个问题苦苦挣扎。

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

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

不记得我是否更改了可能导致该问题的任何内容...

【问题讨论】:

  • 刚遇到这个问题。就我而言,我昨天可以正常访问它,但今天不行。我修改了我的 .gitconfig 以使用 SSH,然后收到提示,关闭它而不连接,将我的 .gitconfig 设置回原来的样子并重试。然后它又工作了。

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


【解决方案1】:

主要是凭据管理器记住了凭据造成的。您应该删除已存储在凭据管理器中的 xxx.visualstudio.com 凭据。

如果电脑的操作系统是windows,你可以打开Credential Manager -> Windows Credentials -> Generic Credentials下 -> 去掉git:https://xxx.visualstudio.com这样的凭证。

然后再次克隆,git 会让你输入 repo 的凭证。输入可以访问VSTS账号的用户名(邮箱地址)和密码后,repo应该克隆成功了。

【讨论】:

  • 我按照这些步骤操作,但它对我不起作用。我正在使用 VS2017 并尝试连接到 VSTS git 项目。我收到以下错误 推送到远程存储库时遇到错误:Git failed with a fatal error。遇到 Win32Exception。无法写入凭据无法生成 askpass:没有此类文件或目录无法读取“xxxxxx.visualstudio.com”的用户名:终端提示已禁用推送到xxxxxx.visualstudio.com/_git/StockTrace
  • 在 TFS 中构建时它对我不起作用。假设子模块使用 FQDN(即subdomain.domain.com/tfs/DefaultCollection/Project/_git/…)进行配置。当 TFS 构建克隆 git 存储库时,它仅使用子域 (subdomain/tfs/DefaultCollection/Project/_git/Repository1)。我不知道为什么它只在克隆期间使用子域。仅供参考,我将 TFS 服务器配置为使用 FQDN 的公共 URL。我曾多次尝试清除通用凭证,但仍然没有运气。我也可以用同样的方法重现这个问题。
  • 刚刚再试一次,TFS构建成功,使用相同的URL。在这种情况下,我只使用子域,就像 TFS 构建使用一样。
  • 我用 VS open 更改了我的密码 -- 不会再这样做 -- 并且 Git 因身份验证错误而失败。我在凭据管理器中删除了我的 2 git:... 凭据,并且 VS 在同步时提示输入用户名/密码。问题解决了。
  • 这与@Matstar 答案相结合解决了它。两者都需要(删除tenant.cache +删除管理器中的凭据)
【解决方案2】:

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

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

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

【讨论】:

  • 我试过这个,它对我不起作用。我必须获取最新的 git-credential-manager.exe 并将其放在 VS2017 git-core 文件夹中。
  • 我更新了凭据管理器,但它并没有解决我的问题,但很高兴看到它为您解决了问题。
  • 今天我们将 DevOps 帐户连接到了 AAD。之后,我们无法再克隆我们的存储库。你的答案是这个问题的解决方案。非常感谢。
  • 从凭证管理器中删除所有 git 存储的凭证并删除对我有用的 tenant.cache 文件。谢谢!
【解决方案3】:

只需将您的 Visual Studio 更新到最新版本。此错误已报告并通过最新更新修复。为我工作。

【讨论】:

  • 如果因为您没有管理员权限而无法实现; git remote set-url origin username:password@github.com/username/repo.git - 这对我有用。注意:会将你的 github 密码以明文形式存储在 ./git/config
  • 我有最新版本的 VS,这仍然发生在我身上。
  • 我正在使用您提出此建议后 9 个月更新的 VS2017 版本......问题仍然存在。
  • 似乎是一个 VS 问题,我在 VS2017 中尝试过没有用,我看到这个并说嘿让我试试 VS2019,因为我也安装了它并且它有效(可能对某人有用) .
【解决方案4】:

我也遇到过类似的问题。

从 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

【讨论】:

  • 这对我有用,我在 VS 2017 Community 15.8.1 中遇到了同样的问题。非常感谢!
  • 也为我工作。谢谢!仅替换 git-credential-manager.exe 无效。
【解决方案5】:

好吧,在心痛之后,我设法解决了这个问题(此时我已经尝试了所有方法,包括从 Credential Manager 中删除帐户)。

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

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

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

【讨论】:

    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      就我而言,这发生在我的 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 并按回车键,我收到几条消息说 Fetch 成功。

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

      【讨论】:

        【解决方案8】:

        我也遇到过类似的问题。

        我通过以下步骤解决了:

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

        请注意,每次您执行任何 Git 操作(拉/推/获取/克隆等)时,它都会询问用户名密码。

        我通过以下方式解决了它:

        运行

        git config --global credential.helper store
        

        然后运行

        git pull
        

        提供用户名和密码。然后会记住这些细节。

        【讨论】:

          【解决方案9】:

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

          并创建新的

          【讨论】:

            【解决方案10】:

            我遇到了同样的问题,没有解决上面的任何问题并通过执行以下操作来解决,

            1) 转到源代码位置 ===> .git 文件夹 ==> 配置文件 ==> 打开它。

            2) 转到[远程“原点”] url ="dev.azure.com/xxxx/_git/yyyy" 复制该网址

            3) 打开新浏览器 [iconnnito :)] 打开复制的 url。

            4)它要求登录,只需从您的提交凭证登录。 登录并转到文件并单击克隆按钮。您在图像中看到

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

            6) 在第 2 步位置中的那个 URL 过去。

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

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

            【讨论】:

              【解决方案11】:

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

              【讨论】:

                【解决方案12】:

                我在使用 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 登录过程成功完成。

                【讨论】:

                  【解决方案13】:

                  我遇到了同样的问题(VS2017),我通过删除以下 Git 文件夹解决了这个问题

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

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

                  【讨论】:

                    猜你喜欢
                    • 2021-11-04
                    • 1970-01-01
                    • 2017-07-28
                    • 2023-03-26
                    • 1970-01-01
                    • 2019-10-22
                    • 2020-06-18
                    • 1970-01-01
                    相关资源
                    最近更新 更多