Visual Studio 2017 - Git因致命错误而失败

时间:2017-03-08 09:48:16

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

我正在使用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企业版(EE)和CE对我来说完全没问题。

似乎这个问题得到了更多的认可,我认为这会让我相信这是Visual Studio如何处理Git的问题。我也注意到每次更新Visual Studio时,这个问题都会重新出现,我必须完成以下一些答案中的步骤才能让Git再次工作。我不确定为什么会这样,我也不知道微软是否打算解决这个问题。

43 个答案:

答案 0 :(得分:58)

我将在此处添加一个解决方案,以前的答案尚未提及,但这就是为我解决的问题。

  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 website并安装最新版本的Git for Windows。

  5. 返回Visual Studio安装程序并再次勾选“Git for Windows”。它不会下载新版本,即使它看起来像它。完成之后,你的Git应该可以使用VSTS和TF Explorer。

答案 1 :(得分:50)

我从控制面板用户帐户 Git凭据管理器更改了通用凭据后,它对我有用。

Enter image description here

答案 2 :(得分:40)

我有一个不同的问题。我的计算机在system32和syswow64中包含较旧的OpenSSL DLL文件,所以为了解决我的问题,我不得不将libeay32.dllssleay32.dll从一个文件夹复制到Visual Studio 2017的Git文件夹中的另一个文件夹。

FROM:C:\Program Files (x86)\Microsoft Visual Studio\2017\ vs_edition \Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\

TO:C:\Program Files (x86)\Microsoft Visual Studio\2017\ vs_edition \Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

参考: Git - Can't clone remote repository

答案 3 :(得分:14)

我尝试了很多,最后通过我在 Git - Can't clone remote repository 中阅读的内容进行了一些修改:

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

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

  3. 中的所有内容
  4. 修改Visual Studio 2017 CE安装→添加Git for windows(安装程序→修改→单个组件)

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

  6. 也许不需要第2点和第3点;我没试过。

    现在它在我的Gogs上运行正常。

答案 4 :(得分:11)

这是我得到的错误:

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

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

我只是还原了代码并且运行良好。

答案 5 :(得分:7)

当我尝试同步存储库时,我曾经遇到过Git这样的错误(我试图在我的同事挂起更改的同时发送我的提交):

  

Git因致命错误而失败。   pull --verbose --progress --no-edit --no-stat --recurse-submodules = no origin

事实证明,在按下提交所有按钮创建本地提交后,Visual Studio保留了一个未提交的文件,这个详细的错误消息实际上意味着:“提交所有更改”。

该丢失的文件是Entity Framework 6模型,虽然您没有更改过任何内容,但它通常显示为未提交的文件。

您可以执行全部提交或撤消未提交的所有更改。

答案 6 :(得分:5)

这似乎发生在VS 2017中,当有一个与pull相冲突的挂起提交时。如果你去一个命令终端并执行一个" git pull origin",你通常会得到错误源的错误。要解决这个问题,请检查VS 2017中的所有更改,然后再次尝试从VS 2017中进行拉动或同步。不用说......这不是VS 2017中的预期行为。

答案 7 :(得分:3)

我正在使用GitKraken和Visual Studio 2017。

当GitKraken克隆存储库时,它会保留提取地址,如“git@github.com:user / Repo.git”,而不是“https://github.com/user/Repo.git”。

要解决此问题,请转到团队资源管理器设置存储库设置遥控器编辑,并将“git @”更改为“https://”“:”改为“/”。

答案 8 :(得分:3)

我有同样的问题。以下步骤解决了我的问题:

  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

答案 9 :(得分:2)

我有同样的问题。 重新启动Visual Studio 为我工作......您可以在重新安装之前尝试一下。

答案 10 :(得分:2)

更改git访问密码后出现此问题!

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

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

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

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

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

git fetch

答案 11 :(得分:2)

哇!这个问题有很多解决方案!

尝试这个简单的方法!

更改密码!

就在前一天,我开始收到此通知,告知我密码将在14天后过期。现在两天后,我收到此错误:

enter image description here

我真的不喜欢入侵git或OpenSSL库,所以我只在计算机上changed the Windows password就能正常工作!

更新

然后它又开始发生。从 Team Explorer 转到同步。然后执行操作>打开命令提示符。在命令提示符下,键入git push origin。可能对您有用。

答案 12 :(得分:2)

Control Panel\All Control Panel Items\Credential Manager中==> Windows Credentials 删除Git:http:// ........

然后重试。

享受!

答案 13 :(得分:1)

就我而言,Windows已经运行了更新,正在等待重启PC。我没有看到任何通知,但是......关闭它并再次打开它修复了问题。

在使用任何这些Visual Studio目录和应用程序进行修改之前先尝试一下。

答案 14 :(得分:1)

我在Windows(不是Visual Studio)中打开了凭据管理器,选择了“ Windows凭据”,找到了我的 git:https // stash .... com通用凭据,点击了向下的箭头使用“编辑”按钮使“用户名”和“密码”字段可见。点击修改,然后在其中输入我的正确密码。然后立即开始工作,无需关闭任何内容。

答案 15 :(得分:1)

我也遇到了这个问题。我在当天早些时候已经同步了我的代码,所以没有意义它突然发出了这个Git错误。重新启动Visual Studio没有任何区别。在查看了上述答案并且没有找到任何明确的解决方案之后,我决定尝试使用我已经安装的TortoiseGit在Visual Studio之外进行同步。这很有效。然后我能够在Visual Studio中正常同步。如果您还没有TortoiseGit,可以从tortoisegit.org下载(免费)。

答案 16 :(得分:1)

我使用Visual Studio 2017 CE收到以下错误消息。

  

无法推送到远程存储库。有关详细信息,请参阅“输出”窗口。

输出窗口显示以下内容:

  

推送到远程存储库时遇到错误:Git进程意外失败。   PushCommand.ExecutePushCommand

我尝试使用GitHub Desktop推送更改。它显示以下错误消息。

  

无法推送这些提交,因为它们包含在GitHub上标记为私有的电子邮件地址。

就是这样。解决方案:

  

打开GitHub帐户>>设置>>电子邮件>>取消选中“将我的电子邮件地址设为私有”

已经完成了。这就是我的问题。

答案 17 :(得分:1)

我能够在命令行中使用此行解决此问题,而无需重新安装任何东西。

git config --global凭据。{myserver} .authority NTLM

只需将{myserver}替换为服务器的主机名(无http或端口号)。

之后,VS能够正确连接。

来源:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#q-i-thought-microsoft-was-maintaining-this-why-does-the-gcm-not-work-as-expected-with-tfs

答案 18 :(得分:1)

我通过从存储库设置中的http://username@asdf/xxx/yy/zzz.git中删除 username @ 来实现它:

团队资源管理器设置存储库设置遥控器编辑 < / p>

答案 19 :(得分:0)

这里有很多解决方案,对我来说,这就是有效的方法。

  1. 我首先从Windows更改了凭据。在Windows搜索中,搜索“凭据管理器”,然后转到“ Windows凭据”,并将我的密码更新为“新密码”(“编辑”选项)。 (控制面板→用户帐户→Visual Studio Git的凭据管理器)

  2. 我重新启动了Visual Studio,并尝试进行推送,但是仍然出现“身份验证失败错误”。

  3. 我在步骤1中返回到Windows凭据管理器,并删除(删除选项)与Visual Studio绑定的GIT帐户,我再次推送并通过了。

答案 20 :(得分:0)

我试过这个: https://stackoverflow.com/a/43257818/1831734

但这并没有解决我的问题。 我确实关注了 [WINDOWS]

  1. 使用 CMD 转到存储库浏览器
  2. 输入:git push

结果: ...

...
remote: Resolving deltas: 100% (11/11), completed with 10 local objects.
remote: error: GH007: Your push would publish a private email address.
remote: You can make your email public or disable this protection by visiting:
remote: http://github.com/settings/emails
To https://github.com/userName/repoName
 ! [remote rejected] main -> main (push declined due to email privacy restrictions)
error: failed to push some refs to 'https://github.com/userName/repoName'

我去了:http://github.com/settings/emails 并检查了设置,然后在 Visual Studio/本地计算机中更改了我的电子邮件

为计算机上的每个存储库设置电子邮件地址

  1. 打开 Git Bash。

  2. 在 Git 中设置电子邮件地址。您可以使用 GitHub 提供的无回复电子邮件地址或任何电子邮件地址。

    $ git config --global user.email "email@example.com"

  3. 确认您已在 Git 中正确设置电子邮件地址:

    git config --global user.email email@example.com

    将电子邮件地址添加到您在 GitHub 上的帐户,以便您的提交归因于您并显示在您的贡献图表中。更多信息,请参阅“向 GitHub 帐户添加电子邮件地址。”

  4. 在上次提交时重置作者信息:

    git commit --amend --reset-author

答案 21 :(得分:0)

如果使用代理,请打开命令提示符并尝试:

git config --global http.proxy <proxy address>:<port>

更多信息,请访问:https://github.com/desktop/desktop/issues/2789

答案 22 :(得分:0)

尝试安装GIT并检查GIT LFS。

答案 23 :(得分:0)

我通过卸载64位版本并安装32位版本的Git来解决此问题

答案 24 :(得分:0)

在尝试删除远程分支时,在VS 2017中弹出相同的错误。问题是分支不在服务器上(将TFS2018与GIT一起使用),但是Visual Studio确实以某种方式将其显示在“远程/来源”部分中。这意味着我无法删除远程分支(VS发出此错误,而服务器浏览器根本没有显示该分支)。

这里是修复它的方法(在VS 2017中测试):

  1. 在Visual Studio中,双击“流氓”远程分支;
  2. VS现在应该已经从中创建了本地分支;
  3. 右键单击本地分支,选择“取消设置远程分支”;
  4. 右键单击本地分支,选择“推送分支”;
  5. 您现在应该具有一个 true 相应的远程分支;
  6. 先删除远程分支,然后再删除本地分支。

希望它将帮助那些最终陷入与我相同问题的人。

答案 25 :(得分:0)

enter image description here

当我进行拉/取/推时,在输出窗口中出现上述错误,我遵循了下面的说明,它解决了我的问题。

如果使用的是Visual Studio 2017企业版,请在以下命令中将userId替换为用户ID,然后在Windows运行窗口(Windows键+ R)中执行此命令。

  

/ netonly / user: userId “ C:\ Program Files(x86)\ Microsoft Visual   Studio \ 2017 \ Enterprise \ Common7 \ IDE \ devenv.exe”

enter image description here

这将提示您输入密码,输入密码。一个新的Visual Studio实例将打开,并将开始正常工作...

答案 26 :(得分:0)

我遇到了一个非常相似的问题,微软的技术人员为我修复了该问题:

  • 关闭所有Visual Studio实例。
  • 打开任务管理器,并检查是否正在运行任何TFS服务。选择它们中的每一个,然后单击“结束进程树”。
  • 浏览到以下文件夹,然后删除%LocalAppData%\ Microsoft \ Team Foundation {version} \ Cache
  • 中的所有内容和文件夹
  • 转到控制面板->用户帐户->管理您的凭据-> Windows凭据,选择VSTS URL将其删除
  • 然后转到“ C:\ Users \ USER NAME \ AppData \ Local \ GitCredentialManager \ tenant.cache”并将其删除
  • 也转到“ C:\ Users \ USER NAME \ AppData \ Local.IdentityService”并将其删除

答案 27 :(得分:0)

尝试克隆新存储库时出现此错误。在尝试了几种解决方案之后,以下对我有用。 在浏览器中,转到dev.azure.com,然后在仓库中单击“克隆”,然后在IDE中选择“ Visual Studio”,然后单击“克隆”。它将打开Visual Studio并设置凭据。如果再次要求提供凭据,请单击生成git凭据并使用它。就像魅力一样。

Close Repository

答案 28 :(得分:0)

当尝试使用Visual Studio的GitHub扩展进行推送时,出现以下错误消息:

col1 col2 col3 --------------------- Abhi 10/3/2019 Sc1 Abhi 10/4/2019 Sc1 Abhi 9/4/2018 Sc1 Abhi 9/4/2018 Sc1 Abhi 3/20/2018 Sc2 Abhi 3/20/2018 Sc2 Abhi 3/20/2017 Sc2 Abhi 3/20/2017 Sc2

我知道存储库存在,因此我退出了存储库。 不幸的是,这种情况下的错误消息并没有指出根本原因:我没有该存储库的写权限

答案 29 :(得分:0)

这个问题一直发生在我-当我必须更改密码时。 感觉我的旧凭据始终存在另一个问题,无法更新。

  1. 转到Windows凭据管理器

  2. 删除所有Tfs凭据条目

完成

答案 30 :(得分:0)

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

答案 31 :(得分:0)

在我的案例中,无法通过Jest单元测试阻止推送到仓库给出了与“推送到远程存储库时遇到的错误:Git失败并出现致命错误”相同的一般错误。

答案 32 :(得分:0)

尝试:

关闭VS的所有实例,然后在控制面板->用户帐户-> Credentail管理器中删除TFS服务器的帐户

引用:https://developercommunity.visualstudio.com/content/problem/142173/after-changing-domain-password-couldnt-connect-to.html

答案 33 :(得分:0)

通过删除本地存储库解决了问题,因此我可以克隆一个新副本。我遇到了新错误“找不到Git,Git失败并出现致命错误。致命:找不到存储库'xyz'”

我尝试了所有关于google的建议,但没有解决方法。 以下简单的步骤对我有用,我将其添加到不断增加的可能的解决方案列表中:

git config-获取http.proxy 结果为http://google.com:80

这不对,所以我摆脱了它。

git config --global --unset http.proxy

答案 34 :(得分:0)

我遇到了类似的问题。在Visual Studio 2017中,使用 Rebase 选项解决了我的问题。

我只有一个主分支。我将master从master转换为origin / master(指向同一分支)并单击 Rebase 。在做Rebase之前,状态是,我提交了我的更改,但无法推送/同步,因为我的本地分支基础和Git代码库没有同步状态。

答案 35 :(得分:0)

安装最新版本的Git for Windows后,您必须打开配置文件进行编辑:

git config --global --edit

单击插入,删除所有设置,单击 Esc ,键入:wq,然后输入进行保存。

现在,您可以使用有效用户通过Bash或IDE克隆存储库。

答案 36 :(得分:0)

我从GNU工具获得wget之后也遇到了这个问题,并将其复制到 c:\ windows 中。 libeay.dlllibssl.dll文件也在归档中。当那些人在 c:\ windows 时,我遇到了这个问题。删除它们立即修复它。因此,检查你的路径中是否有这些.DLL,VS可能正在使用其他软件的版本,而不是使用它所期望的版本。

答案 37 :(得分:0)

AngelBlueSky's answer部分为我工作。在第4步之后,我必须执行这些额外的行来清理Git全局配置:

git config --global credential.helper wincred
git config http.sslcainfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"
git config --global --unset core.askpass
git config --global --unset mergetool.vsdiffmerge.keepbackup
git config --global --unset mergetool.vsdiffmerge.trustexitcode
git config --global --unset mergetool.vsdiffmerge.cmd
git config --global --unset mergetool.prompt
git config --global --unset merge.tool
git config --global --unset difftool.vsdiffmerge.keepbackup
git config --global --unset difftool.vsdiffmerge.cmd
git config --global --unset difftool.prompt
git config --global --unset diff.tool

然后git config -l(从任何git repo执行)应仅返回:

core.symlinks=false
core.autocrlf=false
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=xxxxxxxxxxxx
user.email=xxxxx@xxxxxx.xx
credential.helper=wincred
core.bare=false
core.filemode=false
core.symlinks=false
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
remote.origin.url=https://xxxxxx@bitbucket.org/xxx/xxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.identityserver.remote=origin
branch.identityserver.merge=refs/heads/identityserver
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

运行git statusgit fetch命令以验证它是否可以从命令行运行。

然后转到Visual Studio,您的存储库应该返回到该处,并且所有同步/推/拉应该没有问题。

答案 38 :(得分:-1)

那些新的git用户的提示。您需要先提交才能恢复到旧代码。我在这个问题下尝试了所有解决方案,然后自己发现了这些愚蠢的东西。 :)

答案 39 :(得分:-1)

在我的情况下,根据这里的一些答案,我没有像卸载Git那样激烈地做任何事情;我只需使用命令行而不是Visual Studio。

在您的解决方案的根目录中打开cmd并输入:

git pull

然后你会被告知究竟是什么问题。在我的情况下,它告诉我,我有未被提交的更改,这些更改本来会被覆盖,我需要在我继续之前提交它们。

一旦我完成了这个,拉动就成功了,我可以解决合并工具中的冲突。

TLDR

使用命令行而不是Visual Studio来获取更完整的错误消息。

答案 40 :(得分:-1)

如果它不能从团队管理连接本地Git存储库克隆,可以尝试这两种方式之一。

菜单文件开始页面打开 Go for Git

(或)

菜单文件打开从源代码管理中打开

答案 41 :(得分:-3)

以下解决了我的问题。

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

    确保您的系统上没有安装Git版本, 通过转到控制面板程序和功能将其删除 (TortoiseGit不需要从我的经验中删除,只是 本机Git安装)。

  2. 打开Visual Studio 2017安装程序并在安装选项中取消选中“Git For Windows”。

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

  4. 返回Visual Studio安装程序并再次勾选“Git for Windows”。它     即使看起来像是新版本,也不会下载新版本。     完成后,你的Git安装应该没有VSTS和TF     资源管理器。

答案 42 :(得分:-4)

了解为什么会出现此错误:如果您可以删除其他分支但不能删除另一个分支,则可能是您不是该分支的所有者。分支已经由其他人创建,您正在使用它。

简易解决方案您可以要求分支的所有者将其删除!简单:)

面临的问题:从远程存储库删除分支时遇到错误:PushCommand.ExecutePushCommand