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

Posted

技术标签:

【中文标题】Visual Studio 2017 - Git 因致命错误而失败【英文标题】:Visual Studio 2017 - Git failed with a fatal error 【发布时间】:2017-07-28 19:40:41 【问题描述】:

我正在使用 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 安装程序上安装了适用于 Windows 的 Git,它不仅无法使用 VSTS,而且我也无法使用我的任何 GitHub 存储库。有没有其他人注意到这一点?到目前为止,它发生在我的两台机器上。

Visual Studio 2015 企业版 (EE) 和 CE 完全适合我。

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

【问题讨论】:

你找到解决办法了吗? 尝试进入cmd中的解决方案文件夹并使用git push查看实际错误,我遇到了同样的问题,尝试了很多东西,命令行给了我失败的实际原因(我标记了我的电子邮件在 github 中是私有的,它与推送详细信息有冲突,因为它会使我的电子邮件在代码更改中可见) 我也遇到了各种各样的错误,只需更新Tools > Extensions & Updates 中的 GitHub 扩展即可修复所有错误。 【参考方案1】:

    安装或更新 VS 2019(如果需要,重新启动)。

    打开 Visual Studio 安装程序并卸载“Git for Windows”。

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

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

    再次打开 Visual Studio 安装程序并安装“Git for Windows”。

    您在第 3 步中删除的文件夹没有回来,Windows 版 Git 应该安装在 C:\Program Files\Git\ 中。

【讨论】:

【参考方案2】:

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

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

    使用 CMD 转到存储库浏览器 类型: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/本地计算机中更改了我的电子邮件

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

    打开 Git Bash。

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

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

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

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

    将电子邮件地址添加到您在 GitHub 上的帐户,以便您的提交归属于您并显示在您的贡献图中。有关详细信息,请参阅“将电子邮件地址添加到您的 GitHub 帐户”。

    重置你上次提交的作者信息:

    git commit --amend --reset-author

【讨论】:

【参考方案3】:

我在 Windows(不是 Visual Studio)中打开凭据管理器,选择“Windows 凭据”,找到我的 git:https//stash....com 通用凭据,单击向下的气泡箭头使用编辑按钮使用户名和密码字段可见。点击编辑,并在那里输入我的正确密码。然后就开始工作了,不需要关闭任何东西。

【讨论】:

【参考方案4】:

我在尝试使用 Visual Studio 的 GitHub 扩展进行推送时收到以下错误消息:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

当我拉/取/推时,我在输出窗口中收到上述错误,我按照下面的解决方案解决了我的问题。

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

runas /netonly /user:UserId "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"

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

【讨论】:

【参考方案7】:

我遇到了一个非常相似的问题,微软技术人员的说明为我解决了这个问题:

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

【讨论】:

【参考方案8】:

尝试删除远程分支时,我在 VS 2017 中弹出了相同的错误。问题是分支不在服务器上(使用带有 GIT 的 TFS2018),但不知何故 Visual Studio 确实让它出现在“远程/来源”部分。这意味着我无法删除远程分支(VS 给出了这个错误,而服务器资源管理器根本没有显示该分支)。

以下是解决方法(在 VS 2017 中测试):

    在 Visual Studio 中,双击“流氓”远程分支; VS 现在应该已经从它创建了一个本地分支; 右击本地分支,选择“取消设置远程分支”; 右键本地分支,选择“推送分支”; 您现在应该有一个 true 对应的远程分支; 删除远程分支,然后是本地分支。

希望它能帮助那些最终在这个线程上遇到与我相同问题的人。

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

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

然后重试..

享受吧!

【讨论】:

你为什么认为这个问题在错误的信用?它只会在一种情况下有所帮助,但您会收到另一个错误。这不能解决问题 我不知道为什么我的旧凭据停止工作(我没有更改任何凭据),感谢您拯救我的一天。【参考方案11】:

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

【讨论】:

虽然在还原之前提交确实可以防止您丢失数据,但这并不能回答 OP 的问题。不过,这很适合发表评论!【参考方案12】:

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

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

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

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

系统将提示您输入用户名,然后是密码。

下一条命令将不再请求认证:

git fetch

【讨论】:

【参考方案13】:

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

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

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

【讨论】:

【参考方案14】:

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

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

    我重新启动了 Visual Studio,并尝试推送,但仍然收到“身份验证失败错误”。

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

【讨论】:

【参考方案15】:

这个问题总是发生在我身上——当我必须更改我的密码时。 感觉就像我的旧凭据没有得到更新总是存在另一个问题。

    转到您的 Windows 凭据管理器

    删除所有 Tfs 凭据条目

完成

【讨论】:

【参考方案16】:
    导航到C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ 删除Git文件夹 Visual Studio

【讨论】:

【参考方案17】:

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

简单的解决方法你可以要求分店老板删除它!!简单:)

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

【讨论】:

【参考方案18】:

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

试试这个简单的!

更改您的密码!

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

我真的不想破解 git 或 OpenSSL 库,所以我只是在我的电脑上 changed the Windows password 并且它成功了!

更新

然后它又开始发生了。从 团队资源管理器 转到 同步。然后执行 操作 > 打开命令提示符。在命令提示符下键入git push origin。这可能对你有用。

【讨论】:

这似乎是最聪明的解决方案!谢谢;)【参考方案19】:

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

git config --global credential.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

【讨论】:

【参考方案20】:

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

【讨论】:

【参考方案21】:

试试:

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

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

【讨论】:

这对我有用。似乎也是所有建议解决方案中最简单的。【参考方案22】:

通过删除本地存储库使问题更加复杂,因此我可以克隆一个新副本。我遇到了新错误 “git cannot be found Git failed with a fatal error.fatal: repository 'xyz' not found”

我尝试了我在谷歌上提出的所有建议,但没有解决方案。 以下简单步骤对我有用,我将其添加到不断增长的可能解决方案列表中:

git config --get http.proxy 结果是http://google.com:80

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

git config --global --unset http.proxy

【讨论】:

【参考方案23】:

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

【讨论】:

这对我有用。似乎也是所有建议的解决方案中最简单的 很高兴它有帮助。如果有帮助,请您投票吗?它可能会帮助其他人。谢谢! 谢谢。在最新更新的 VS2017 中解决了我的 GIt 问题 我刚刚删除了通用凭据下的 git 链接,它起作用了。 要访问Credential Manager,只需在 Windows 10 中搜索它(使用 windows 键)。然后单击 Windows 凭据。向下滚动到 Generic Credential 部分并查找 git: https://your.tfs.server。我在更改 Windows 密码后收到此错误。【参考方案24】:

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

团队资源管理器设置存储库设置远程编辑

【讨论】:

【参考方案25】:

以下解决了我的问题。

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

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

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

    前往 Git 网站并安装适用于 Windows 的最新版 Git。

    返回 Visual Studio 安装程序并再次勾选“Git for Windows”。它 不会下载新版本,即使它看起来是这样。 完成后,您的 Git 安装应该可以使用 VSTS 和 TF 探索者。

【讨论】:

Re TF Explorer:你的意思是Team Explorer吗? 只做了第一步,对我来说效果很好,然后它使用了正确版本的 GIT 软件【参考方案26】:

我正在使用 GitKraken 和 Visual Studio 2017。

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

要解决这个问题,请转到 团队资源管理器设置存储库设置远程编辑,将“git@”改为“https://”“:”改为“/”。

【讨论】:

【参考方案27】:

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

我只有一个主分支。我从 master 变基到 origin/master(意味着同一个分支)并单击 Rebase。在进行 Rebase 之前,状态是,我提交了我的更改,但是由于我的本地分支库和 Git 代码库未同步状态而无法推送/同步。

【讨论】:

【参考方案28】:

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

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

git pull

然后您会被告知具体问题出在哪里。就我而言,它告诉我有未提交的更改将被覆盖,我需要提交它们才能继续。

完成此操作后,拉取成功,我可以在合并工具中解决冲突。

TLDR

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

【讨论】:

谢谢这解决了我的问题。我更改了我的域用户名密码,在此之前,我有未提交的更改。使用 git pull 时,它会显示更改用户名密码弹出窗口,这有助于我了解问题所在。然后我做了 git reset 以丢失所有以前的更改,然后它解决了我在 Visual Studio 中的问题【参考方案29】:

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

git config --global --edit

点击Insert,去掉所有设置,点击Esc,输入:wq回车保存。

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

【讨论】:

【参考方案30】:

我曾经在尝试同步存储库时遇到来自 Git 的此类错误(我尝试发送我的提交,同时我的同事有待处理的更改):

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

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

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

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

【讨论】:

我的也是这样。我遇到了一个问题,即较新版本的 VS 2017 (15.3.2) 突然间不断让我检查这个奇怪的 storage.ide 文件。在关闭/打开 VS 后,我不得不继续提交该文件,这终于奏效了。免责声明 - 我也完成了上面最接受的答案中的步骤。 我刚刚注意到我提交的所有文件仍在“更改”下。我重新承诺了他们。问题就消失了。

以上是关于Visual Studio 2017 - Git 因致命错误而失败的主要内容,如果未能解决你的问题,请参考以下文章

如果解决方案目录中的“.git”,Visual Studio 2017 崩溃

使用Visual Studio 2017克隆TFS Git repo时出错400

Visual Studio 2017 for Mac 连接Git的奇怪问题

Visual Studio 2017 Enterprise + TFS 2018 + Git Clone = 无法获取本地颁发者证书

Visual Studio (VS2017)提交代码到Git服务器流程(GitCode)

Visual Studio (VS2017)提交代码到Git服务器流程(GitCode)