Visual Studio 2017 - Git falhou com um erro fatal

153

Estou usando o Visual Studio 2017 Community Edition (CE) e entrei na minha conta da Microsoft e estou conectado ao VSTS. Posso ver todos os meus projetos e repositórios, mas quando tento extrair / buscar / enviar alterações, recebo o seguinte erro:

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

E de acordo com os comandos de busca e recepção também.

Instalei o Git for Windows no instalador do Visual Studio 2017 e, além de não funcionar com o VSTS, também não consigo trabalhar com nenhum dos meus repositórios do GitHub. Alguém mais notou isso? Já aconteceu em duas das minhas máquinas até agora.

O Visual Studio 2015 Enterprise Edition (EE) e o CE funcionam completamente bem para mim.

Parece que esse problema ganhou muito mais reconhecimento do que eu pensava, o que me leva a acreditar que esse é um problema de como o Visual Studio está lidando com o Git. Também notei que toda vez que atualizo o Visual Studio, esse problema aparece novamente e preciso seguir as etapas de algumas das respostas abaixo para que o Git volte a funcionar. Não sei por que isso está acontecendo e também não sei se a Microsoft está planejando resolver esse problema.

Toby
fonte
2
você encontrou alguma solução?
JerryGoyal
Eu tentei pelo menos três dos métodos respondidos sem sucesso. Pior, eu nem tenho idéia do que causou isso.
MMCALKE
tente ir para a pasta da solução no cmd e use git push para ver o erro real, tive o mesmo problema, tentei várias coisas, a linha de comando me deu o motivo real da falha (marquei meu email como particular no github e ele estava em conflito com os detalhes do impulso como ele iria fazer o meu e-mail visível na mudança de código)
Royi Mindel
1
Eu também estava recebendo todos os tipos de erros, corrigi-los apenas atualizando a extensão GitHub no Windows Tools > Extensions & Updates.
Daniel Bailey

Respostas:

89

Depois de alterar as credenciais genéricas no Painel de controleContas de usuárioCredential Manager for Git , funcionou para mim.

Digite a descrição da imagem aqui

wbing520
fonte
1
Isso funcionou para mim. Parecia ser a mais fácil de todas as soluções sugeridas também
Steve Kennedy
1
Ainda bem que ajuda. Poderia votar se ajudar? Isso pode ajudar os outros. Obrigado!
wbing520
1
Obrigado por isso. Resolveu o meu problema git no último atualizados VS2017
Sherwin
2
Acabei de remover os links git com credenciais genéricas, funcionou.
Kundan Vuppala
2
Para Credential Managerprocurá-lo apenas no Windows 10 (use a tecla Windows). Clique em Credenciais do Windows. Role para baixo até a seção Credencial genérica e procure git: https://your.tfs.server. Eu recebi esse erro depois de alterar minha senha do Windows.
Goku_da_master 29/04/19
73

Vou adicionar aqui uma solução que as respostas anteriores ainda não mencionaram, mas foi isso que a corrigiu.

  1. Navegue C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\e exclua a Gitpasta.

  2. Certifique-se de que não há nenhuma versão do Git instalada no seu sistema, remova-a acessando Painel de ControlePrograma e Recursos (o TortoiseGit não precisa ser removido da minha experiência, apenas instalações nativas do git).

  3. Abra o instalador do Visual Studio 2017 e desmarque "Git For Windows" nas opções de instalação.

  4. Acesse o site do Git e instale a versão mais recente do Git for Windows.

  5. Volte para o instalador do Visual Studio e marque "Git for Windows" novamente. Não fará o download de uma nova versão, mesmo que pareça. Depois disso, seu Git deve ficar bem com o VSTS e o TF Explorer.

Toby
fonte
9
Eu já tinha o git para Windows instalado. A execução das etapas 1 e 5 fez isso por mim.
Tomas Dittmann
4
Ahem - ou Empresa , em vez de Comunidade no caminho acima ;-)
PhatBuck
@ Douglas você está absolutamente certo. Eu segui o que você mencionou. Isso resolve o problema.
6608 Tun
1
Na etapa 4, usei o Git de 64 bits para Windows e isso funcionou para mim. Meu VS2017 15.7.3 pode mais uma vez enviar para o meu controle remoto sem obter esse erro.
Qxotk
2
Para mim, tudo que eu precisava era a etapa 1. (o VS 2017 Enterprise, já tinha o git para Windows instalado.) Saí do Visual Studio 2017 primeiro, excluí a pasta GIT, recarreguei o VS 2017 e tudo estava bem. gitPasta removida deC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
Barumpus 6/09/19
41

Eu tive um problema diferente. Meu computador continha arquivos DLL OpenSSL mais antigos no system32 e syswow64; portanto, para corrigir meu problema, tive que copiar libeay32.dlle ssleay32.dllde uma pasta para outra dentro das pastas Git do Visual Studio 2017.

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 .: Git - Não é possível clonar o repositório remoto

flatrick
fonte
7
Isso funcionou para mim, mas onde diabos você encontrou a pista?
StingyJack #
O mesmo truque funciona para 'Professional', copie as DLLs, feche instâncias do VS, reabra uma e tente fechar novamente.
Cvocvo
Esses não eram os únicos arquivos que estavam faltando para mim. Este link descreve como descobrir o que você precisa copiar. developercommunity.visualstudio.com/content/problem/27220/...
Riki
Essa pode ser a solução que estamos procurando! Obrigado!
Tsalaroth 15/05
Trabalhou para mim, erro:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Ogglas 3/17/17
14

Eu tentei muito e finalmente consegui trabalhar com algumas modificações do que li no Git - Não é possível clonar o repositório remoto :

  1. Modifique a instalação do Visual Studio 2017 CE → remova o Git for windows (instalador → modifique → componentes únicos).

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

  3. Modificar a instalação do Visual Studio 2017 CE → adicionar Git para Windows (instalador → modificar → componentes únicos)

  4. Instale o Git no Windows (versão de 32 ou 64 bits), com o Git no caminho do sistema configurado.

Talvez os pontos 2 e 3 não sejam necessários; Eu não tentei

Agora funciona bem nos meus Gogs.

AngelBlueSky
fonte
1
Funcionou para mim, mas logo após o 1 eu também desinstalei o Git for Windows na lista de programas do meu PC.
21917 benichka
Isso funcionou para mim. Portanto, parece que a versão do Git fornecida pela MS é ruim e substituí-la pela versão oficial do Git for Windows corrige o problema - apenas verifique se está no PATH e a única versão do git instalada. Acho que finalmente estamos migrando para o VS2017.
Enno 14/10
12

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

e tente novamente ..

Aproveitar !

Abdellah Azizi
fonte
Por que você acha que a questão está errada? Isso ajudará apenas em um caso, mas você receberá outro erro. Thi não resolve problema
Alex Z
11

Este é o erro que eu estava recebendo:

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

Eu tentei todos os métodos anteriores, mas eles não funcionaram. Mais tarde, descobri que havia alguns conflitos no código (consulte a janela de saída do Visual Studio 2017).

Simplesmente reverti o código e funcionou.

JerryGoyal
fonte
7

Certa vez, tive um erro do Git enquanto tentava sincronizar um repositório (tentei enviar minhas confirmações enquanto tinha alterações pendentes do meu colega de trabalho):

Git falhou com um erro fatal. pull --verbose --progress --no-edit --no-stat --recurse-submódulos = sem origem

Após pressionar o Commit allbotão para criar uma confirmação local, o Visual Studio deixou um arquivo sem confirmação e essa mensagem de erro elaborada realmente significava: "Confirme todas as suas alterações".

Esse arquivo ausente era o modelo do Entity Framework 6 e geralmente é mostrado como arquivo não confirmado, embora você não tenha alterado nada.

Você pode confirmar todas ou desfazer todas as alterações que não foram confirmadas.

ZenekMetalGuru
fonte
2
O meu era semelhante a isso. Eu estava com um problema em que a versão mais recente do VS 2017 (15.3.2) era repentinamente constantemente me fazendo verificar esse arquivo estranho storage.ide. Eu tive que continuar enviando esse arquivo após fechar / abrir o VS e isso finalmente funcionou. Isenção de responsabilidade - Também concluí as etapas da resposta mais aceita acima.
precisa saber é o seguinte
Acabei de perceber que todos os arquivos que eu comprometi ainda estavam em "Alterações". Eu os recomendei. E o problema se foi.
Jude
5

Isso parece acontecer no VS 2017, quando há uma confirmação pendente que entraria em conflito com a atração. Se você for a um terminal de comando e fizer uma "origem do pull do git", normalmente receberá o erro que é a fonte da confusão. Para resolver, verifique todas as alterações no VS 2017 e tente puxar ou sincronizar novamente a partir do VS 2017. Não é necessário dizer ... esse comportamento não é desejado no VS 2017.

GGleGrand
fonte
4

Eu tive o mesmo problema. Reiniciar o Visual studio funcionou para mim ... Você pode experimentá-lo antes de reinstalar as coisas.

Éric Bergeron
fonte
4

Estou usando o GitKraken e o Visual Studio 2017.

Quando o GitKraken clona um repositório, ele deixa o endereço de busca como "[email protected]: user / Repo.git", em vez de " https://github.com/user/Repo.git ".

Para corrigir isso, vá para o Team ExplorerConfiguraçõesRepositório ConfiguraçõesRemotesEditar , e mudança "git @" para "https: //" e ":" para "/".

Avius
fonte
4

Eu tive esse problema depois de alterar a senha de acesso do git!

Eu tive que redefinir as credenciais através do console do PowerShell.

No nível da pasta do repositório git, o script era o seguinte:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

Você será solicitado a fornecer o usuário e a senha.

O próximo comando não solicitará mais autenticação:

git fetch
Wagner Melo
fonte
4

insira a descrição da imagem aqui

Quando puxo / busca / envio, recebi o erro acima na minha janela de saída, segui a solução abaixo, que resolveu meu problema.

Se você estiver usando o visual studio 2017 enterprise edition, substitua o userId pelo seu ID de usuário no comando abaixo e execute este comando na janela de execução do Windows (tecla Windows + R).

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

insira a descrição da imagem aqui

Isso solicitará a senha, digite sua senha. Uma nova instância do visual studio será aberta e começará a funcionar corretamente ...

Rex
fonte
3

Eu tive o mesmo problema. As etapas a seguir resolveram o problema para mim:

  1. Faça backup e exclua "C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 14.0 \ 2017 \ Professional \ Common7 \ IDE \ Extensões comuns \ Microsoft \ TeamFoundation \ Team Explorer \ Git"
  2. Instale a versão mais recente do Git: https://git-scm.com/download/win
Vortex852456
fonte
2
Eu tenho duas maquinas Ambos têm VS2017RTM neles. Mesma versão do VS e mesma versão do GitHub.VisualStudio. Nenhuma das pastas do TeamExplorer possui uma pasta Git. Um funciona e o outro não. :(
Bill Noel
3

Uau! Existem tantas soluções para esse problema!

Experimente este fácil!

Mude sua senha!

Outro dia, comecei a receber esse aviso de que minha senha expiraria em 14 dias. Agora, 2 dias depois, estou recebendo este erro:

insira a descrição da imagem aqui

Eu realmente não estava com vontade de invadir as bibliotecas git ou OpenSSL, então mudei a senha do Windows no meu computador e funcionou!

Atualizar

Então começou a acontecer novamente. No Team Explorer, vá para Sincronizar . Em seguida, faça Ações> Abrir Prompt de Comando . No tipo prompt de comando git push origin. Isso pode funcionar para você.

Jess
fonte
Esta parece ser a solução mais inteligente! Obrigado;)
markzzz
2

Eu tive um problema muito semelhante e as instruções de um técnico da Microsoft o corrigiram para mim:

  • Feche todas as instâncias do Visual Studio.
  • Abra o Gerenciador de tarefas e verifique se algum serviço TFS está em execução. Selecione cada um deles e clique em End Process Tree.
  • Navegue até a pasta abaixo e exclua todo o conteúdo e pastas em% LocalAppData% \ Microsoft \ Team Foundation {version} \ Cache
  • Vá para Painel de controle -> Contas de usuário -> Gerenciar sua credencial -> Credencial do Windows, selecione o URL do VSTS para removê-lo
  • Em seguida, vá para "C: \ Usuários \ NOME DO USUÁRIO \ AppData \ Local \ GitCredentialManager \ tenant.cache" e exclua-o
  • Vá também para "C: \ Users \ NOME DO USUÁRIO \ AppData \ Local.IdentityService" e exclua-o
Casey
fonte
1

Também encontrei esse problema. Eu tinha sincronizado meu código no início do dia, então não fazia sentido que de repente desse esse erro de Git. Reiniciar o Visual Studio não fez nenhuma diferença. Depois de revisar as respostas acima e não encontrar nenhuma solução clara, decidi tentar sincronizar fora do Visual Studio usando o TortoiseGit que eu já havia instalado. Isso funcionou. Eu era capaz de sincronizar com o Visual Studio normalmente. Se você ainda não possui o TortoiseGit, faça o download (gratuito) do tortoisegit.org.

Jerry
fonte
O VS é incapaz de criar uma nova origem remota. Esta é a única coisa que funciona para mim. Você faz o envio inicial para o controle remoto na linha de comando ou com o Tortoise e o VS pode usá-lo.
precisa saber é o seguinte
1

No meu caso, o Windows havia executado uma atualização e estava esperando para reiniciar o PC. Eu não tinha visto nenhuma notificação, mas ... bem, desligá-lo e ligá-lo novamente corrigiu o problema.

Tente isso primeiro antes de pesquisar com qualquer um desses diretórios e aplicativos do Visual Studio.

RLH
fonte
1

Recebi as seguintes mensagens de erro usando o Visual Studio 2017 CE.

Falha ao enviar para o repositório remoto. Veja a janela Saída para mais detalhes.

A janela de saída mostrou o seguinte:

Erro encontrado ao enviar para o repositório remoto: O processo Git falhou inesperadamente. PushCommand.ExecutePushCommand

Tentei fazer alterações usando o GitHub Desktop. Ele mostra a seguinte mensagem de erro.

Não é possível enviar por push essas confirmações, pois elas contêm um endereço de email marcado como privado no GitHub.

É isso aí. Solução:

abra a conta do GitHub >> Configurações >> E-mails >> Desmarque "Manter meu endereço de e-mail privado"

Está feito. Esse foi o problema no meu caso.

Pranav
fonte
Este também foi o meu problema. Eu tive que desmarcar a Block command line pushes that expose my emailconfiguração, enviar confirmações pendentes. Em seguida, configurei meu endereço de e-mail sem resposta do GitHub na configuração global do git. Quaisquer confirmações futuras foram associadas a esse email e agora podem ser enviadas mesmo com a Block command line pushes that expose my emailativação novamente.
SvenAelterman
1

Eu consegui remover o nome de usuário @ do http: //username@asdf/xxx/yy/zzz.git nas configurações do repositório:

Team ExplorerConfiguraçõesRepositório ConfiguraçõesRemotesEditar

Michael Nylund
fonte
1

Consegui corrigir o problema usando esta linha na linha de comando sem reinstalar nada.

git config - credencial global. {myserver} .authority NTLM

Simplesmente substitua {myserver} pelo nome do host do seu servidor (sem http ou número da porta).

Depois disso, o VS conseguiu se conectar corretamente.

Fonte: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintaining-this-why-does-the- gcm-não-trabalho-como-esperado-com-tfs

maxim1500
fonte
1

Esse problema sempre ocorre comigo - quando preciso alterar minha senha. Parece que sempre há outro problema com minhas credenciais antigas que não são atualizadas.

  1. Vá para o Windows Credential Manager

  2. Remova todas as entradas de credenciais de Tfs

Acabado

Peter
fonte
1

Ocorreu o mesmo erro no VS 2017 ao tentar excluir uma ramificação remota. O problema era que a ramificação não estava no servidor (usando o TFS2018 com GIT), mas, de alguma forma, o Visual Studio apareceu na seção "remote / origin". Isso significava que não era possível excluir a ramificação remota (o VS apresentava esse erro, enquanto o explorador de servidores não mostrava a ramificação).

Veja como corrigi-lo (testado no VS 2017):

  1. No Visual Studio, clique duas vezes na ramificação remota "não autorizada";
  2. O VS agora deveria ter criado uma ramificação local a partir dele;
  3. Clique com o botão direito do mouse na ramificação local, selecione "Desativar ramificação remota";
  4. Clique com o botão direito do mouse na ramificação local, selecione "Push branch";
  5. Agora você deve ter um verdadeiro ramificação remota correspondente ;
  6. Exclua a filial remota e depois a filial local.

Espero que ajude alguém que acaba neste tópico a ter o mesmo problema que eu.

XYZ
fonte
0

Eu também tive esse problema depois que obtive wgetas ferramentas do GNU e o copiei diretamente em c: \ windows . Os arquivos libeay.dlle libssl.dlltambém estavam no arquivo. Quando aqueles estavam em c: \ windows , eu tive esse problema. Removê-los imediatamente corrigiu. Portanto, verifique se você possui esses .DLLs em algum lugar no seu caminho, o VS pode estar pegando alguma versão de outro software, em vez de usar o que ele espera.

Nick Pirocanac
fonte
0

A resposta de AngelBlueSky funcionou parcialmente para mim. Eu tive que executar essas linhas adicionais para limpar a configuração global do Git após a etapa 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

Então git config -l(executado a partir de qualquer repositório git) deve retornar apenas isso:

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
[email protected]
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://[email protected]/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

Execute o git statusegit fetch comandos para validar se ele funciona na linha de comando.

Em seguida, vá para o Visual Studio, onde seus repositórios devem voltar e todas as sincronizações / push / pull devem funcionar sem problemas.

Softlion
fonte
0

Após instalar a última versão do Git for Windows, você deve abrir o arquivo de configuração para editar:

git config --global --edit

Clique em Insert, remova todas as configurações, clique em Esc, digite :wqe, Enterpara salvar.

Agora você pode clonar o repositório pelo Bash ou IDE com um usuário válido.

johnander11
fonte
0

No meu caso, não tive que fazer algo tão drástico como desinstalar o Git, conforme algumas das respostas aqui; Eu apenas tive que usar a linha de comando em vez do Visual Studio.

Abra cmdna raiz da sua solução e digite:

git pull

Você será informado exatamente qual é o problema. No meu caso, ele me disse que eu tinha alterações não confirmadas que seriam substituídas e que eu precisava confirmá-las antes que eu pudesse continuar.

Depois de fazer isso, a atração foi bem-sucedida e pude resolver o conflito na ferramenta de mesclagem.

TLDR

Use a linha de comando em vez do Visual Studio para obter uma mensagem de erro mais completa.

Ben
fonte
Obrigado, isso resolveu meu problema. Alterei minha senha de nome de usuário do domínio e, antes disso, havia alterações não confirmadas. Quando usado git pull, mostra o pop-up de alteração de senha de nome de usuário, o que me ajudou a entender qual era o problema. Então eu fiz git reset a perder toda a mudança anterior e então ele resolveu o meu problema no Visual Studio
Esen
0

Eu estava tendo problemas semelhantes. No Visual Studio 2017, com a opção Rebase , resolvi meu problema.

Eu estou tendo apenas um ramo mestre. Eu rebasei do mestre para a origem / mestre (significa para o mesmo ramo) e cliquei em Rebase . Antes de fazer Rebase, o status era: eu confirmei minhas alterações, mas não consegui enviar / sincronizar como minha base de filial local e a base de código Git não estava no estado sincronizado.

Pallavi
fonte
0

Composto o problema, excluindo o repositório local para que eu pudesse clonar uma nova cópia. Fui confrontado com um novo erro "não foi possível encontrar o git Git falhou com um erro fatal. Fatal: repositório 'xyz' não encontrado"

Eu tentei todas as sugestões que eu google sobre sem resolução. A seguinte etapa simples funcionou para mim e a estou adicionando à crescente lista de possíveis resoluções:

git config - o resultado http.proxy é http://google.com:80

isso não está certo, então eu me livrei disso.

git config --global --unset http.proxy

CodesOfPSJ
fonte
0

No meu caso, um teste de unidade Jest com falha, impedindo o envio ao repositório, fornece o mesmo erro genérico de "Erro encontrado ao enviar para o repositório remoto: o Git falhou com um erro fatal".

Rob C
fonte