我正在使用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再次工作。我不确定为什么会这样,我也不知道微软是否打算解决这个问题。
答案 0 :(得分:58)
我将在此处添加一个解决方案,以前的答案尚未提及,但这就是为我解决的问题。
导航至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 website并安装最新版本的Git for Windows。
返回Visual Studio安装程序并再次勾选“Git for Windows”。它不会下载新版本,即使它看起来像它。完成之后,你的Git应该可以使用VSTS和TF Explorer。
答案 1 :(得分:50)
答案 2 :(得分:40)
我有一个不同的问题。我的计算机在system32和syswow64中包含较旧的OpenSSL DLL文件,所以为了解决我的问题,我不得不将libeay32.dll
和ssleay32.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
答案 3 :(得分:14)
我尝试了很多,最后通过我在 Git - Can't clone remote repository 中阅读的内容进行了一些修改:
修改Visual Studio 2017 CE安装→删除Git for windows(安装程序→修改→单个组件)。
删除C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git
。
修改Visual Studio 2017 CE安装→添加Git for windows(安装程序→修改→单个组件)
在Windows上安装Git(32位或64位版本),配置系统路径中的Git。
也许不需要第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)
我有同样的问题。以下步骤解决了我的问题:
答案 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天后过期。现在两天后,我收到此错误:
我真的不喜欢入侵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能够正确连接。
答案 18 :(得分:1)
我通过从存储库设置中的http://username@asdf/xxx/yy/zzz.git中删除 username @ 来实现它:
团队资源管理器→设置→存储库设置→遥控器→编辑 < / p>
答案 19 :(得分:0)
这里有很多解决方案,对我来说,这就是有效的方法。
我首先从Windows更改了凭据。在Windows搜索中,搜索“凭据管理器”,然后转到“ Windows凭据”,并将我的密码更新为“新密码”(“编辑”选项)。 (控制面板→用户帐户→Visual Studio Git的凭据管理器)
我重新启动了Visual Studio,并尝试进行推送,但是仍然出现“身份验证失败错误”。
我在步骤1中返回到Windows凭据管理器,并删除(删除选项)与Visual Studio绑定的GIT帐户,我再次推送并通过了。
答案 20 :(得分:0)
我试过这个: https://stackoverflow.com/a/43257818/1831734
但这并没有解决我的问题。 我确实关注了 [WINDOWS]
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
答案 21 :(得分:0)
如果使用代理,请打开命令提示符并尝试:
git config --global http.proxy <proxy address>:<port>
答案 22 :(得分:0)
尝试安装GIT并检查GIT LFS。
答案 23 :(得分:0)
我通过卸载64位版本并安装32位版本的Git来解决此问题
答案 24 :(得分:0)
在尝试删除远程分支时,在VS 2017中弹出相同的错误。问题是分支不在服务器上(将TFS2018与GIT一起使用),但是Visual Studio确实以某种方式将其显示在“远程/来源”部分中。这意味着我无法删除远程分支(VS发出此错误,而服务器浏览器根本没有显示该分支)。
这里是修复它的方法(在VS 2017中测试):
希望它将帮助那些最终陷入与我相同问题的人。
答案 25 :(得分:0)
当我进行拉/取/推时,在输出窗口中出现上述错误,我遵循了下面的说明,它解决了我的问题。
如果使用的是Visual Studio 2017企业版,请在以下命令中将userId替换为用户ID,然后在Windows运行窗口(Windows键+ R)中执行此命令。
/ netonly / user: userId “ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ devenv.exe”
这将提示您输入密码,输入密码。一个新的Visual Studio实例将打开,并将开始正常工作...
答案 26 :(得分:0)
我遇到了一个非常相似的问题,微软的技术人员为我修复了该问题:
答案 27 :(得分:0)
尝试克隆新存储库时出现此错误。在尝试了几种解决方案之后,以下对我有用。 在浏览器中,转到dev.azure.com,然后在仓库中单击“克隆”,然后在IDE中选择“ Visual Studio”,然后单击“克隆”。它将打开Visual Studio并设置凭据。如果再次要求提供凭据,请单击生成git凭据并使用它。就像魅力一样。
答案 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)
这个问题一直发生在我-当我必须更改密码时。 感觉我的旧凭据始终存在另一个问题,无法更新。
转到Windows凭据管理器
删除所有Tfs凭据条目
完成
答案 30 :(得分:0)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\
Git
文件夹答案 31 :(得分:0)
在我的案例中,无法通过Jest单元测试阻止推送到仓库给出了与“推送到远程存储库时遇到的错误:Git失败并出现致命错误”相同的一般错误。
答案 32 :(得分:0)
尝试:
关闭VS的所有实例,然后在控制面板->用户帐户-> Credentail管理器中删除TFS服务器的帐户
答案 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.dll
和libssl.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 status
和git fetch
命令以验证它是否可以从命令行运行。
然后转到Visual Studio,您的存储库应该返回到该处,并且所有同步/推/拉应该没有问题。
答案 38 :(得分:-1)
那些新的git用户的提示。您需要先提交才能恢复到旧代码。我在这个问题下尝试了所有解决方案,然后自己发现了这些愚蠢的东西。 :)
答案 39 :(得分:-1)
在我的情况下,根据这里的一些答案,我没有像卸载Git那样激烈地做任何事情;我只需使用命令行而不是Visual Studio。
在您的解决方案的根目录中打开cmd
并输入:
git pull
然后你会被告知究竟是什么问题。在我的情况下,它告诉我,我有未被提交的更改,这些更改本来会被覆盖,我需要在我继续之前提交它们。
一旦我完成了这个,拉动就成功了,我可以解决合并工具中的冲突。
使用命令行而不是Visual Studio来获取更完整的错误消息。
答案 40 :(得分:-1)
如果它不能从团队→管理连接→本地Git存储库→克隆,可以尝试这两种方式之一。
菜单文件→开始页面→打开→ Go for Git
(或)
菜单文件→打开→从源代码管理中打开
答案 41 :(得分:-3)
以下解决了我的问题。
导航至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网站并安装最新版本的Git for Windows。
返回Visual Studio安装程序并再次勾选“Git for Windows”。它 即使看起来像是新版本,也不会下载新版本。 完成后,你的Git安装应该没有VSTS和TF 资源管理器。
答案 42 :(得分:-4)
了解为什么会出现此错误:如果您可以删除其他分支但不能删除另一个分支,则可能是您不是该分支的所有者。分支已经由其他人创建,您正在使用它。
简易解决方案:您可以要求分支的所有者将其删除!简单:)
面临的问题:从远程存储库删除分支时遇到错误:PushCommand.ExecutePushCommand