Visual Studio 2017 - Git 出现致命错误失败

185

我正在使用Visual Studio 2017社区版(CE),已登录我的Microsoft帐户并连接到VSTS。我可以看到所有的项目和仓库,但我尝试拉取/获取/推送任何更改时,都会出现以下错误:

Error encountered while pushing to the remote repository: Git failed with a fatal error.
PushCommand.ExecutePushCommand

同样适用于fetch和pull命令。

我在Visual Studio 2017安装程序中安装了Git for Windows,但它不仅无法与VSTS一起使用,而且我也无法使用我的GitHub存储库。有其他人注意到这个问题吗?这已经发生在我的两台机器上了。

对我来说,Visual Studio 2015 Enterprise Edition(EE)和CE都可以完全正常工作。

看起来这个问题得到的关注要比我想象的多,这让我相信这是Visual Studio处理Git时的问题。我还注意到每次更新Visual Studio时,这个问题就会再次出现,我必须按照下面某些答案中的步骤去使Git再次工作。我不知道为什么会发生这种情况,也不知道Microsoft是否计划解决这个问题。


2
你找到任何解决方案了吗? - GorvGoyl
尝试在命令提示符中转到解决方案文件夹,并使用git push命令查看实际错误。我遇到了同样的问题,尝试了很多方法,但命令行给出了失败的实际原因(我在GitHub中将我的电子邮件标记为私有,这与推送详细信息发生了冲突,因为它会使我的电子邮件在代码更改中可见)。 - Royi Mindel
2
我也遇到了各种错误,只需在“工具>扩展和更新”中更新GitHub扩展程序即可解决所有问题。 - Daniel Bailey
44个回答

139

在我从控制面板用户账户Git凭据管理器更改了通用凭据后,它对我起作用了。

在此输入图片描述


2
这对我来说起作用了。似乎比所有建议的解决方案都容易。 - Steve Kennedy
1
很高兴能够帮到你。如果它有帮助,你可以投票支持一下吗?这可能会对其他人有所帮助。谢谢! - wbing520
5
我刚刚在通用凭据下移除了Git链接,它有效了。 - Kundan Vuppala
5
要进入“凭据管理器”,只需在Windows 10中搜索它(使用Windows键)。然后点击“Windows凭据”。向下滚动到通用凭据部分,寻找“git: https://your.tfs.server”。我在更改Windows密码后收到了这个错误提示。 - goku_da_master
1
凭据的位置现在在“Windows 凭据”部分,而不是“Web 凭据”部分。否则,在 Windows 10 上的后续步骤相同。 - ΩmegaMan
显示剩余6条评论

87

我将在这里提供一个解决方案,之前的答案没有提到,但是这就是我解决问题的方法。

  1. 导航到 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ 并删除 Git 文件夹。

  2. 确保系统中没有安装 Git 的版本,通过进入 控制面板程序和功能 来删除它(根据我的经验,不需要删除 TortoiseGit,只需删除本机 git 安装)。

  3. 打开 Visual Studio 2017 安装程序,并在安装选项中取消选择 "Git for Windows"。

  4. 前往 Git 网站 并安装最新版本的 Git for Windows。

  5. 返回到 Visual Studio 安装程序,并再次选择 "Git for Windows"。即使看起来像是下载了新版本,实际上并不会。完成后,您的 Git 应该可以正常使用 VSTS 和 TF Explorer。


13
我已经安装了适用于 Windows 的 Git。执行步骤 1 和步骤 5 完成了操作。 - Tomas Dittmann
5
以上路径中,应该使用“企业版”而不是“社区版”;-) - PhatBuck
1
在第四步中,我使用了64位的Git for Windows,这对我起作用了。我的VS2017 15.7.3再次可以推送到我的远程仓库而不会出现这个错误。 - qxotk
4
对我来说,我只需要第一步。(已经在Windows上安装了Git的Visual Studio 2017企业版。)我先退出Visual Studio 2017,然后删除GIT文件夹,重新加载VS 2017,所有问题都解决了。从“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer”中删除git文件夹即可。 - Barumpus
步骤1和5对我在VS 2022上起作用了。谢谢! - undefined
显示剩余8条评论

42
我遇到了一个不同的问题。我的电脑系统32和syswow64文件夹内包含了旧版本的OpenSSL DLL文件,为了解决我的问题,我需要将libeay32.dllssleay32.dll从一个文件夹复制到Visual Studio 2017 Git文件夹中的另一个文件夹中。
源路径: C:\Program Files (x86)\Microsoft Visual Studio\2017\vs_edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\ 目标路径: C:\Program Files (x86)\Microsoft Visual Studio\2017\vs_edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core 相关参考:Git - 无法克隆远程存储库

9
这对我有用,但你到底在哪里找到线索的? - StingyJack
同样的技巧适用于“专业版”,复制dll文件,关闭VS实例,重新打开一个并再次尝试关闭。 - cvocvo
这很可能是我们所有人都在寻找的解决方案!谢谢! - tsalaroth
对我有用,错误:在克隆远程仓库时遇到错误:Git 失败,致命错误。CloneCommand.ExecuteClone - Ogglas
1
@StingyJack 我向 Microsoft 报告了这个问题,并附上了 Procmon 转储文件,微软的支持人员确定它使用了错误的 dll 文件。我从来没有确切地找出是哪个应用程序安装了它所需的 libeay32.dll/ssleay32.dll 版本放到了 system32 文件夹中。 - flatrick
显示剩余2条评论

23

控制面板\所有控制面板项\凭据管理器 中找到 Windows 凭据,然后删除 Git:http://........

重试一下..

享受吧!


你为什么认为问题在错误的凭据上?这只有一种情况会有帮助,但你会收到另一个错误。这并不能解决问题。 - Alex
我不知道为什么我的旧凭据不能使用了(我没有更改任何凭据),感谢您挽救了我的一天。 - Fadhly Permata

17

我尝试了很多方法,最终根据我在Git - Can't clone remote repository中读到的一些修改方法使其正常工作:

  1. 修改Visual Studio 2017 CE安装程序→移除Windows Git(安装程序→修改→单个组件)。

  2. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git 中删除所有内容。

  3. 修改Visual Studio 2017 CE安装程序→添加Windows Git(安装程序→修改→单个组件)。

  4. 在Windows上安装Git(32位或64位版本),并配置系统路径中的Git。

也许步骤2和3不是必需的,我没有试过。

现在它在我的Gogs上可以正常工作了。


1
对我来说有效,但是在这之后我也在我的电脑程序列表中卸载了Git for Windows。 - benichka
这对我很管用。看起来MS提供的Git版本有问题,用官方的Git for Windows版本替换即可解决问题 - 确保它在PATH中,并且安装的是唯一的Git版本。我认为我们最终要迁移到VS2017。 - Enno

11

我遇到的错误是:

Git failed with a fatal error.
pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin

我尝试了之前的所有方法,但它们都没有起作用。后来我发现代码中存在一些冲突(请参见 Visual Studio 2017 输出窗口)。

我只是恢复了代码,然后它就起作用了。


7
我曾经在尝试同步一个代码库时,遇到了来自Git的这样一个错误(当我试图发送我的提交时,同时有同事的未决更改):

Git 失败并返回致命错误。 pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin

后来发现,在按下 Commit all 按钮创建本地提交之后,Visual Studio 留下了一个未提交的文件。实际上,这个复杂的错误消息意味着:“提交所有更改”。
那个缺失的文件是 Entity Framework 6 模型,虽然你没有对它做任何更改,但通常会显示为未提交文件。
你可以执行“提交所有”或“撤消所有未提交的更改”。

3
我的情况与此类似。我遇到了一个问题,即 Visual Studio 2017 的新版本(15.3.2)突然让我不断提交这个奇怪的 storage.ide 文件。在关闭/打开 VS 后,我不得不不断地提交该文件,最终问题得以解决。免责声明 - 我也完成了上面最受欢迎答案中的步骤。 - jaredbaszler
我刚刚注意到我提交的所有文件仍然在“更改”下。我重新提交了它们。问题解决了。 - Jude

5

我遇到了同样的问题,以下步骤为我解决了这个问题:

  1. 备份并删除 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git"
  2. 安装最新版的 Git:https://git-scm.com/download/win

2
我有两台机器,它们都安装了VS2017RTM。VS和GitHub.VisualStudio的版本都相同。但是,两台机器上的TeamExplorer文件夹中都没有Git文件夹。其中一台可以正常工作,而另一台却不能。 :( - Bill Noel
难以置信 - 我在这里删除了git文件夹,但它仍然可以工作!C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git - Doug

5

在VS 2017中,当有一个待提交的更改会与拉取操作冲突时,似乎会出现这种情况。如果你进入命令终端并输入"git pull origin"命令,通常会出现引起混淆的错误。为了解决这个问题,在VS 2017中检查所有更改后再尝试拉取或同步操作。不用说...这不是VS 2017中期望的行为。


4

在更改git访问密码后,我遇到了这个问题!

我必须通过PowerShell控制台重置凭据。

在git存储库文件夹级别上,脚本如下:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

您将被提示输入用户名和密码。

下一个命令将不再请求身份验证:

git fetch

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