VS 2017 – Git失败,一个致命的错误

我正在使用VS2017CE,并已login到我的Microsoft帐户,并已连接到VSTS。 我可以看到我所有的项目和存储库,但是当我试图拉/取/推任何更改时,我得到以下错误:

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

对于取指和拉取命令也是如此。

我在VS2017安装程序上安装了Git for windows,不仅没有VSTS的工作,我也无法使用我的任何Github存储库。 有没有其他人注意到这一点? 到目前为止,这是发生在我的两台机器上。

VS2015EE和CE对我来说工作得很好。

编辑:这个问题似乎已经得到了更多的认可,我认为这会导致我相信这是VS如何处理Git的问题。 我也注意到,每次我更新Visual Studio时,这个问题都会popup来,我必须通过下面一些答案中的步骤来让Git重新工作。 我不确定为什么会这样,我也不知道微软是否打算解决这个问题。

我有一个不同的问题。 我的电脑在system32和syswow64中包含了较旧的OpenSSL DLL,所以为了解决我的问题,我不得不将libeay32.dllssleay32.dll从一个文件夹复制到VS2017的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

REF: https : //developercommunity.visualstudio.com/content/problem/19752/git-cant-clone-remote-repository.html

我要在这里添加一个解决scheme,以前的答案还没有提到,但这是为我解决了这个问题。

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

  2. 确保你的系统上没有安装Git版本,去控制面板>程序和function(TortoiseGit不需要从我的经验中删除,只是本地的Git安装)

  3. 打开VS 2017安装程序,并在安装选项中取消“Git For Windows”。

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

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

我尝试了很多,终于得到它与我在这里阅读的一些修改工作: https : //developercommunity.visualstudio.com/content/problem/19752/git-cant-clone-remote-repository.html

1)修改VS2017CE安装 – >删除git for windows(安装 – >修改 – >单个组件)

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

3)修改VS2017CE安装 – >为windows添加git(安装 – >修改 – >单个组件)

4)在windows(32或64位版本)上安装git,在系统path中configurationgit。

也许点2和3是不需要的,没有尝试。

现在它在我的Gogs上运行正常。 对不起我的英语不好。

这是我得到的错误:

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

试过以上所有的方法..没有工作。 后来我发现代码中有一些冲突(参见VS2017输出窗口)。

“我只是恢复了代码,它的工作。”

我曾尝试同步回购(我尝试发送我的提交,同时有来自我的同事的更改)时,从git有这样的错误:

Git失败了一个致命的错误。 pull –verbose –progress –no-edit –no-stat –recurse-submodules =无原点

事实certificate,按下“全部提交”button来创build本地提交Visual Studio已经留下一个文件uncommited,这详细的错误信息意味着:“提交所有的更改”。

缺less的文件是entity framework6模型,它通常显示为uncommited文件,虽然你没有改变它的东西。

这似乎发生在VS 2017中,当有一个与pull相冲突的未决提交时。 如果你去一个命令terminal并做一个“git pull origin”,你通常会得到这个混淆的源头错误。 要解决,请检查您在VS 2017中所做的所有更改,然后尝试从VS 2017再次进行拉取或同步。不用说,这不是VS 2017中期望的行为。

我遇到过同样的问题。 以下步骤解决了我的问题:

  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

我遇到过同样的问题。 重新启动Visual Studio为我工作…你可以尝试之前重新安装的东西。

我知道这个问题已经有很多答案,但在我的情况下,Windows已经运行了更新,并且正在等待重新启动PC。 我还没有看到任何通知,但是,closures它,然后再打开它解决了问题。

在使用这些VS目录和应用程序之前,先尝试一下。

我有以下错误信息VS2017CE。

无法推送到远程存储库。 看到输出窗口了解更多细节。

输出窗口显示如下:

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

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

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

而已。 解:

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

完成。 这是我的问题。 谢谢。

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

文件>开始页面>打开>去Git

(要么)

文件>打开>从源代码pipe理打开

AngelBlueSky答案部分为我工作。 我应该执行这些额外的行来清理git全局configuration后第4步:

 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仓库执行)应该只返回这个:

 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命令来validation它是否从命令行起作用。

去Visual Studio,你的回购应该回来,所有同步/推/拉应该没有问题的工作。

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

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

在安装最后一个版本的git for windows https://git-for-windows.github.io/之后,你必须打开configuration文件来编辑:;

 git config --global --edit 

单击插入并删除所有设置,然后单击Esc ,最后input:wq并按Enter保存。

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

就我而言,我并不需要做任何像卸载git一样激烈的事情, 我只需要使用命令行而不是Visual Studio。

打开你的解决scheme根目录cmd ,然后input:

 git pull 

然后你会被告知到底是什么问题。 就我而言,它告诉我,我有可能被覆盖的未经改变的改变,而且在我能够继续之前我需要提交它们。

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

TL; DR

使用命令行而不是VS来获得更完整的错误信息。