VisualStudio2017-Git 失败,出现致命错误

我正在使用 VisualStudio2017CommunityEdition (CE) ,并且已经登录到我的 Microsoft 帐户并且已经连接到 VSTS。我可以看到我所有的项目和存储库,但是当我试图拉取/获取/推送任何更改时,我会得到以下错误:

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

因此,对于提取和拉取命令也是如此。

我在 Visual Studio 2017安装程序上安装了 Git for Windows,它不仅无法与 VSTS 一起工作,而且我也无法与我的任何 GitHub 存储库一起工作。有人注意到这个吗?到目前为止,我的两台机器都出现了这种情况。

VisualStudio2015企业版(EE)和 CE 对我来说完全没问题。

看起来这个问题已经得到了比我想象的更多的认可,这让我相信这是 Visual Studio 处理 Git 的方式的问题。我还注意到,每次更新 Visual Studio 时,这个问题都会弹出来,我必须通过下面的一些答案中的步骤才能让 Git 重新工作。我不知道为什么会发生这种情况,我也不知道微软是否计划解决这个问题。

288533 次浏览

我尝试了很多,最后得到了它的工作与一些修改,从我读到的 Git 不能克隆远程存储库:

  1. 修改 VisualStudio2017CE 安装→删除窗口的 Git (安装→修改→单个组件)。

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

  3. 修改 VisualStudio2017CE 安装→为窗口添加 Git (安装程序→修改→单个组件)

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

也许第二点和第三点不需要,我没有尝试。

现在它在我的高格斯上运行正常。

我遇到了另一个问题。我的计算机包含 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\

收件人: C:\Program Files (x86)\Microsoft Visual Studio\2017\VS _ edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

参考编号: Git 不能克隆远程存储库

我也遇到了同样的问题。下面的步骤为我解决了这个问题:

  1. 备份并删除“ C: Program Files (x86) Microsoft Visual Studio 14.02017 Professional Common7 IDE CommonExtended Microsoft TeamFoundation Team Explorer Git”
  2. 安装 Git 的最新版本: https://git-scm.com/download/win

如果 团队管理连接本地 Git 库克隆人不起作用,可以尝试这两种方法中的任何一种。

菜单 档案首页张嘴我是 Git

(或)

菜单 档案张嘴从源代码管理打开

这就是我得到的错误:

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

我试了以前所有的方法,但都不管用。后来我发现代码中存在一些冲突(请参见 VisualStudio2017输出窗口)。

我只是恢复了代码,就成功了。

我要在这里添加一个解决方案,以前的答案没有提到,但这是什么为我修复它。

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

  2. 确保你的系统上没有安装任何版本的 Git,通过进入 控制面板程序和特性来删除它(TortoiseGit 不需要从我的经验中删除,只需要本地 Git 安装)。

  3. 打开 VisualStudio2017安装程序,在安装选项中取消勾选“ GitForWindows”。

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

  5. 回到 VisualStudio 安装程序中,再次勾选“ Git for Windows”。它不会下载一个新版本,即使它看起来可能是。完成这些操作之后,您的 Git 应该可以使用 VSTS 和 TF Explorer。

我有同样的问题。 重新启动视觉工作室为我工作... 你可以尝试在重新安装之前的东西。

在我的情况下,Windows 已经运行了一个更新,正在等待重新启动电脑。我没有看到任何通知,但是,嗯... 关闭它,再次打开它修复了问题。

在篡改这些 VisualStudio 目录和应用程序之前,首先尝试这样做。

AngelBlueSky 的回答在一定程度上对我有用。在第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,您的存储库应该回到那里,所有的同步/推/拉都应该没有问题。

我也遇到了这个问题。今天早些时候我已经同步了我的代码,所以它突然出现这个 Git 错误是没有意义的。重新启动 VisualStudio 没有任何区别。在回顾了上面的答案并且没有找到任何明确的解决方案之后,我决定尝试使用我已经安装的 TortoiseGit 在 Visual Studio 之外进行同步。成功了。然后我就可以在 Visual Studio 中正常同步了。如果你还没有 TortoiseGit,你可以从 TortoiseGit.org 下载(免费)。

我使用 VisualStudio2017CE 得到了以下错误消息。

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

输出窗口显示如下:

推送到远程存储库时遇到错误: Git 进程意外失败。 推送命令,执行推送命令

我尝试使用 GitHub 桌面推送更改。

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

就是这样,解决方案:

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

结束了,这就是我的问题所在。

我曾经在尝试同步一个存储库时遇到过这样一个来自 Git 的错误(我尝试在同事提交未决更改时发送提交) :

Git 由于一个致命错误而失败。 Pull —— verose —— Progress —— no-edit —— no-stat ——

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

那个丢失的文件是实体框架6模型,它通常显示为未提交文件,尽管您没有在其中更改任何内容。

您可以提交或撤消所有未提交的更改。

在从 GNU 工具获得 wget并将其复制到 C: 窗户之后,我也遇到了这个问题。libeay.dlllibssl.dll文件也在归档文件中。在 C: 窗户的时候,我遇到了这个问题。移除它们立即修复它。看看你有没有这个。在您的路径中的某个地方,VS 可能会选择这些 DLL 的其他软件版本,而不是使用它所期望的版本。

在安装最后版本的 适用于 Windows 的 Git之后,您必须打开配置文件进行编辑:

git config --global --edit

单击 插入,删除所有设置,单击 埃斯克,键入 :wq,键入 进来保存。

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

在我的例子中,我不需要做任何激烈的事情,比如根据这里的一些答案卸载 Git; 我只需要使用命令行而不是 Visual Studio。

在解决方案的根目录打开 cmd,然后输入:

git pull

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

一旦我这样做了,拉取成功了,我可以解决合并工具中的冲突。

TLDR

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

这似乎发生在 VS 2017中,当有一个未决的提交将与拉动冲突。如果到命令终端执行“ git pull source”,通常会得到引起混淆的错误。要解决这个问题,请检查 VS2017中的所有更改,然后再次尝试从 VS2017中拉取或同步。不用说... 这不是 VS 2017中所期望的行为。

在 VisualStudio2017中,使用 重新定位选项我解决了我的问题。

我只有一个主分支。我从 master 重新定位到 source/master (意思是同一个分支) ,然后单击 重新定位。在使用 Rebase 之前,我的状态是,我提交了我的更改,但是不能推送/同步,因为我的本地分支基础和 Git 代码基础没有同步状态。

我用的是 GitKraken 和 Visual Studio 2017。

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

要解决这个问题,转到 探险队设定存储库设置遥控器剪辑,并将“ git@”改为“ https://”还有“ :”To“/”。

下面解决了我的问题。

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

    确保您的系统上没有安装 Git 的版本, 通过进入 控制面板程序和特性来移除它 (TortoiseGit 不需要从我的经验中删除,只是 本机 Git 安装)

  2. 打开 VisualStudio2017安装程序,在安装选项中取消勾选“ GitForWindows”。

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

  4. 返回到 VisualStudio 安装程序,再次勾选“ Git for Windows” 将不会下载一个新版本,即使它看起来可能是。 完成这项工作之后,您的 Git 安装应该就可以使用 VSTS 和 TF 了 探索者

我通过在存储库设置中从 http://username@asdf/xxx/yy/zzz.git中删除 用户名@使其工作:

团队探索者 设定存储库设置遥控器→ < em > 编辑

在我将通用凭证从 控制面板用户帐户Git 的证书管理器改变之后,它对我起作用了。

Enter image description here

通过删除本地回购使问题更加复杂,因此我可以克隆一个新的副本。我面临着新的错误 “ Git 无法找到 Git 失败,并且有一个致命的错误。致命的: 没有找到存储库‘ xyz’”

我尝试了所有的建议,我谷歌关于没有解决方案。 下面这个简单的步骤对我很有效,我正在把它加入到越来越多的可能解决方案中:

Git config ——获取 http.xy result is http://google.com:80

这是不对的,所以我把它处理掉了。

Git config —— global ——取消 http.xy 设置

试试:

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

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

在我的例子中,一个失败的 Jest 单元测试阻止了对回购的推送,它给出了相同的一般性错误: “当推送到远程存储库时遇到错误: Git 失败了,并且出现了致命错误。”

我能够在命令行中使用这一行修复这个问题,而不需要重新安装任何东西。

Git config ——全局凭据。{ 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

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

试试这个简单的!

更改密码!

就在前几天,我开始收到通知说我的密码将在14天后过期。现在,两天后,我得到了这个错误:

enter image description here

我真的不喜欢黑客 git 或 OpenSSL 库,所以我只是 更改了 Windows 密码在我的计算机和它的工作!

更新

然后又开始发生了。从 探险队转到 同步。那就做 操作 > 打开命令提示符。在命令提示符中键入 git push origin。也许对你有用。

理解为什么会出现这个错误 : 如果您能够删除其他分支,但不能删除另一个分支,那么有一种情况是您不是该分支的所有者,即。这个分支是由其他人创建的,而您正在使用它。

简单解决方案 : 您可以要求分支机构的所有者删除它! ! simple:)

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

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

这个问题总是出现在我身上-当我不得不改变我的密码。 感觉好像总是有另一个问题与我的旧凭证不得到更新。

  1. 转到 Windows 凭据管理器

  2. 删除所有 Tfs 凭据条目

结束了

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

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

  2. 我重新启动了 VisualStudio,并试图推动,但我仍然得到了“身份验证失败的错误”。

  3. 我回到步骤1中的 Windows Credential 管理器,删除了绑定到我的 Visual Studio 的 GIT 帐户(删除选项) ,我再次按下按钮,它通过了。

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

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

更多信息: https://github.com/desktop/desktop/issues/2789

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

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

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

git config --system --unset credential.helper


git config --system credential.helper store


git fetch

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

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

git fetch

给那些新 Git 用户的一个建议。您需要在恢复到旧代码之前进行提交。我尝试了这个问题下的每一个解决方案,然后我发现了这个愚蠢的东西自己。:)

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

再试一次。

好好享受吧!

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

我在 VS2017中试图删除远程分支时也出现了同样的错误。问题是这个分支不在服务器上(使用 TFS2018和 GIT) ,但是不知怎么的 Visual Studio 在“ remote/source”部分中显示了它。这意味着我不能删除远程分支(VS 发出了这个错误,而服务器浏览器根本没有显示该分支)。

下面是如何修复它(在 VS 2017中进行了测试) :

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

希望它能帮助那些和我有同样问题的人。

enter image description here

当我在输出窗口中执行 pull/get/push 时,我得到了上面的错误,我遵循了下面的解决方案,它解决了我的问题。

如果您正在使用 Visual Studio 2017企业版,请在下面的命令中将 userId 替换为您的用户 ID,并在 Windows 运行窗口(windows key + R)中执行此命令。

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

enter image description here

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

我遇到过一个非常类似的问题,微软(Microsoft)一位技术人员的说明帮我解决了这个问题:

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

我在尝试克隆一个新的存储库时出现了这个错误。 从浏览器转到 dev.azure.com,点击 Clone 并在 IDE 中选择 Visual Studio,然后点击 Clone。它将打开视觉工作室和设置凭证。如果它再次请求凭据,请单击 Generategit 凭据并使用它。非常有效。

Close Repository

当试图使用 GitHub 扩展 for Visual Studio 进行推送时,我得到以下错误消息:

Error encountered while pushing branch to the remote repository: Git failed with a fatal error repository 'https://github.com/my-repo' not found

我知道存储库的存在,我从中提取出来的。 不幸的是,这种情况下的错误消息没有指出根本原因: 我没有该存储库的写权限

我在 Windows 中打开凭证管理器(不是 Visual Studio) ,选择“ Windows 凭证”,找到我的 Git: https//stash... . com Generic Credential,点击下面的泡泡箭头,使可见的用户名和密码字段与编辑按钮。点击编辑,并把我的 密码正确在那里。然后马上开始工作,不需要关闭任何东西。

我试过了: Https://stackoverflow.com/a/43257818/1831734

但这并没有解决我的问题。 我确实跟着[视窗]

  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

  1. 安装或更新 VS2019(如果需要重新启动)。

  2. 打开 VisualStudioInstaller 并卸载“ GitforWindows”。

  3. 完全删除以下文件夹(及其所有内容) :

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\
    
  4. 再次打开 VisualStudioInstaller 并安装“ GitforWindows”。

  5. 在步骤3中删除的文件夹没有返回,应该在 C:\Program Files\Git\中安装 Git for Windows。

我用简单的方法解决了这个问题。

  1. 转到 C: Program Files (x86) MicrosoftVisualStudio2019 Community Common7 IDE CommonExtended MicrosoftTeamFoundation TeamExplorer Git mingw32 ssl certs
  2. 打开 file-ca-bundle. trust. crt
  3. 打开“证书”窗口后,单击“安装证书”。

现在尝试克隆存储库。