无法推送Git,视觉工作室。Git失败并出现致命错误。致命错误:遇到HttpRequestException。

37

这是我在Visual Studio上遇到的错误。我无法确定是否有配置可以解决这个问题。此外,我受到限制,无法安装Git命令行工具。

Error encountered while pushing to the remote repository: Git failed with a fatal error.
fatal: HttpRequestException encountered.
   An error occurred while sending the request.
error: cannot spawn askpass: No such file or directory
fatal: could not read Username for 'https://github.com': terminal prompts disabled

2
可能是 Git 失败致命错误。无法读取用户名 的重复问题。 - phd
5
这并不是那个问题的复制。Daedalon 是正确的;GitHub 移除了早期的 TLS 1.2 版本,导致了这个问题。 - Edward Thomson
1
我建议将已接受的答案更改为Lachezar的答案,原因在于Suamere在当前(3/2/18)接受的答案中提到。 - BMB
10个回答

32

7
这是很好的信息,但由于您应该无论如何都要更新VS,所以Lachezar的答案对我更有效。更新VS确实解决了您提到的所有问题,而不需要手动调整我的系统。 - Suamere
3
VS更新已经为我完成了这件事。 - Ozan BAYRAM
1
@daedalon,今天我安装了最新版的VS Enterprise 2017。但是,在尝试克隆VSTS Git仓库时,我收到了“Git致命错误。HttpRequestException.无法生成…”的错误信息。您能否给出解决建议? - Rohit Garg
1
嗨@RohitGarg,听起来可能是不同的错误。如果您的错误消息与原始问题中的消息相同,请仔细检查您是否拥有最新版本的VS。如果是这样,您可以考虑单独更新Windows Git或Git凭据管理器。 - Daedalon
2
对我来说,问题得到了解决,方法是将两个dll文件即libeay32.dll和ssleay32.dll从“<VS_INSTALL>\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\”文件夹复制到“<VS_INSTALL>\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core\”文件夹。 - Rohit Garg

32

只需将您的Visual Studio更新到最新版本,问题就能解决。对我有用。


4
谢谢Lachezar。具体而言,VS 2017 版本15.5.7(发布于2/20/18)提到了这个修复:“我们已更新Git和Git凭据管理器组件”。 - Emilio
1
谢谢,完美地解决了问题。这应该是被采纳的答案。 - BMB
2
我先尝试了这个答案,但在它能够再次工作之前,我必须更新Git for Windows。 - Pieter Heemeryck
1
我使用的是v15.7.6版本,但仍然存在这个问题。我也更新了Git for Windows和凭据管理器。但是和原帖中一样,仍然出现同样的错误。 - smoore4
谢谢你的提示!对我有用。此外,Windows 有一个等待更新,更新后我也更新了 Visual Studio。 - Yury Kozlov

3

2
这是由于Github已禁用TLS v1.0和v1.1,你可以在Github Engineering上阅读通知,这是链接 Weak cryptographic standards removal notice
从链接页面中可以看到:
去年我们宣布了淘汰几种弱加密标准。然后我们在去年底提供了一个状态更新,概述了一些我们所做的变化,以使客户端过渡更容易。我们很快就接近了我们之前发布的2月1日截止日期,因此我们将时间表推迟了一周。
......
Visual Studio附带特定版本的Git for Windows和Git Credential Manager for Windows(GCM)。Microsoft已更新Visual Studio 2017最新版本以与TLSv1.2 Git服务器配合使用。我们建议Visual Studio用户通过单击产品内的通知标志或直接从IDE检查更新来升级到最新版本。Microsoft还在Visual Studio开发者社区支持论坛上提供了额外的指导。

1
在我的情况下,上述方法不起作用,因为我在Bitbucket中使用的Google电子邮件地址启用了双重身份验证。因此,我必须创建一个Bitbucket应用程序令牌,并在原始的https URL中放置生成的令牌,如下所示https://username:appToken@bitbucket.org/repo/test.git

1
在我的情况下,更新git并复制bin目录不能解决错误。我的解决方案是检查您的git配置。 首先,打开git bash。 其次,检查git配置。git config -l http.proxy和https.proxy会导致您无法成功更新项目。如果您使用vpn,并使1080端口打开,则上传可能不太顺畅。(仅当您的vpn速度较慢时才是这种情况)

1

检查您的配置是否正确。如果一切正常,可能是由于错误的电子邮件导致的问题。 在团队资源管理器中检查全局设置以获取电子邮件。


1
Git 发生致命错误。 无法读取 'https://test.visualstudio.com' 的用户名:终端提示已禁用。 - Asif Hameed

1
您上面编写的代码是正确的,但是如果您可以拉取却无法推送,只能在控制台中推送而不能在VS中推送,并且您在企业代理后面,则可能需要尝试另一种方法。它可能适用于您:
  1. Create GitHub token: https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line#creating-a-token
  2. In the .gitconfig file write:

    [credential] 
    authority = *the-token*"
    
  3. Search for the file .gitconfig by command: git config --list --show-origin


0

打开你的项目文件夹路径,在文件夹上右键,选择Git Bash,在其中输入以下命令:

git config --global http.sslVerify false

git command

然后尝试同步、获取和拉取,它会正常工作。


这不是一个可行的解决方案,你正在将 http.sslVerify 全局设置为 false,这会影响安全性。 - imgkl

0

在Windows上使用Git bash时,即使在弹出窗口中输入密码后仍然出现问题。我尝试使用Git Gui,它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接