Visual Studio 2017 - Git falló con un error fatal

153

Estoy usando Visual Studio 2017 Community Edition (CE), y he iniciado sesión en mi cuenta de Microsoft y estoy conectado a VSTS. Puedo ver todos mis proyectos y repositorios, pero cuando intento extraer / recuperar / impulsar cualquier cambio, aparece el siguiente error:

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

Y en consecuencia para los comandos de extracción y extracción también.

Instalé Git para Windows en el instalador de Visual Studio 2017 y no solo no funciona con VSTS, sino que tampoco puedo trabajar con ninguno de mis repositorios de GitHub. ¿Alguien más ha notado esto? Ha sucedido en dos de mis máquinas hasta ahora.

Visual Studio 2015 Enterprise Edition (EE) y CE funcionan completamente bien para mí.

Parece que este problema ha recibido mucho más reconocimiento de lo que pensaba, lo que me lleva a creer que este es un problema con la forma en que Visual Studio está tratando con Git. También he notado que cada vez que actualizo Visual Studio, este problema vuelve a aparecer, y tengo que seguir los pasos en algunas de las respuestas a continuación para que Git vuelva a funcionar. No estoy seguro de por qué sucede esto, y tampoco sé si Microsoft planea resolver este problema.

Toby
fuente
2
¿Encontraste alguna solución?
JerryGoyal
He probado al menos 3 de los métodos respondidos sin ningún éxito. Peor aún, no tengo ni idea de qué causó que esto sucediera.
MMalke
intente ir a la carpeta de la solución en cmd y use git push para ver el error real, tuve el mismo problema, intenté muchas cosas, la línea de comando me dio la razón real del error (marqué mi correo electrónico como privado en github y estaba en conflicto con los detalles de inserción, ya que haría visible mi correo electrónico en el cambio de código)
Royi Mindel
1
También recibí todo tipo de errores, los arreglé todos simplemente actualizando la extensión GitHub en Tools > Extensions & Updates.
Daniel Bailey

Respuestas:

89

Después de cambiar las credenciales genéricas desde Panel de controlCuentas de usuarioAdministrador de credenciales para Git , funcionó para mí.

Ingrese la descripción de la imagen aquí

wbing520
fuente
1
Esto funcionó para mí. Parecía la más fácil de todas las soluciones sugeridas también
Steve Kennedy
1
Me alegra que ayude. ¿Podría votarlo si ayuda? Puede ayudar a otros. ¡Gracias!
wbing520
1
Gracias por esto. Resolvió mi problema de GIt en el último VS2017 actualizado
Sherwin
2
Acabo de eliminar los enlaces git bajo credenciales genéricas, funcionó.
Kundan Vuppala
2
Para buscarlo Credential Managersolo en Windows 10 (use la tecla de Windows). Luego haga clic en Credenciales de Windows. Desplácese hacia abajo hasta la sección Credencial genérica y busque git: https://your.tfs.server. Recibí este error después de cambiar mi contraseña de Windows.
goku_da_master
73

Voy a agregar una solución aquí que las respuestas anteriores no han mencionado, pero esto es lo que me solucionó.

  1. Navega C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\y elimina la Gitcarpeta.

  2. Asegúrese de que no haya una versión de Git instalada en su sistema, elimínela yendo a Panel de controlPrograma y características (TortoiseGit no necesita ser eliminado de mi experiencia, solo instalaciones nativas de git).

  3. Abre el instalador de Visual Studio 2017 y desmarca "Git para Windows" en las opciones de instalación.

  4. Dirígete al sitio web de Git e instala la última versión de Git para Windows.

  5. Vuelva al instalador de Visual Studio y marque "Git para Windows" nuevamente. No descargará una nueva versión aunque parezca que es así. Una vez hecho esto, su Git debería estar bien con VSTS y TF Explorer.

Toby
fuente
9
Ya tenía instalado git para windows. Ejecutar los pasos 1 y 5 lo hizo por mí.
Tomas Dittmann
44
Ejem - o Enterprise en lugar de Comunidad en la ruta anterior ;-)
PhatBuck
@ Douglas tienes toda la razón. Seguí lo que mencionaste. Se soluciona el problema.
Tun
1
En el Paso 4 usé Git de 64 bits para Windows y esto funcionó para mí. Mi VS2017 15.7.3 puede presionar una vez más a mi control remoto sin recibir este error.
qxotk
2
Para mí, todo lo que necesitaba era el paso 1. (VS 2017 Enterprise, ya tenía instalado git para Windows). Primero salí de Visual Studio 2017, eliminé esa carpeta GIT, luego volví a cargar VS 2017 y todo estaba bien. Se eliminó la gitcarpeta deC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
Barumpus
41

Tuve un problema diferente. Mi computadora contenía archivos DLL OpenSSL más antiguos en system32 y syswow64, por lo que para solucionar mi problema, tuve que copiar libeay32.dlly ssleay32.dllde una carpeta a otra dentro de las carpetas Git de Visual Studio 2017.

DE: 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 - No se puede clonar el repositorio remoto

Flatrick
fuente
77
Esto funcionó para mí, pero ¿dónde diablos encontraste la pista?
StingyJack
El mismo truco funciona para 'Profesional', copie el dll, cierre instancias VS, vuelva a abrir una e intente cerrar nuevamente.
cvocvo
Esos no fueron los únicos archivos que me faltaban. Este enlace describe cómo averiguar qué debe copiar. developercommunity.visualstudio.com/content/problem/27220/…
Riki
¡Esta puede ser la solución que todos estamos buscando! ¡Gracias!
tsalaroth
Me funcionó, Error:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Ogglas
14

Intenté mucho y finalmente lo hice funcionar con alguna modificación de lo que leí en Git - No se puede clonar el repositorio remoto :

  1. Modificar la instalación de Visual Studio 2017 CE → eliminar Git para Windows (instalador → modificar → componentes individuales).

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

  3. Modificar la instalación de Visual Studio 2017 CE → agregar Git para Windows (instalador → modificar → componentes individuales)

  4. Instale Git en Windows (versión de 32 o 64 bits), configurando Git en la ruta del sistema.

Quizás los puntos 2 y 3 no son necesarios; No lo intenté

Ahora funciona bien en mis Gogs.

ÁngelAzulCielo
fuente
1
Funcionó para mí, pero justo después de 1 también desinstalé Git para Windows en la lista de programas para mi PC.
benichka
Esto funcionó para mí. Por lo tanto, parece que la versión de Git que MS envía es mala, y reemplazarla con la versión oficial de Git para Windows soluciona el problema, solo asegúrese de que esté en la RUTA, y la única versión de git que está instalada. Creo que finalmente estamos migrando a VS2017.
Enno
12

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

y vuelva a intentar ..

¡A disfrutar!

Abdellah Azizi
fuente
¿Por qué crees que el problema está en mal crédito? Solo ayudará en un caso, pero recibirá otro error. Thi no resuelve el problema
Alex Z
11

Este es el error que estaba recibiendo:

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

Intenté todos los métodos anteriores, pero no funcionaron. Más tarde descubrí que había algunos conflictos en el código (vea la ventana de salida de Visual Studio 2017).

Simplemente revertí el código y funcionó.

JerryGoyal
fuente
7

Una vez tuve un error de Git mientras intentaba sincronizar un repositorio (intenté enviar mis confirmaciones mientras tenía cambios pendientes de mi compañero de trabajo):

Git falló con un error fatal. pull --verbose --progress --no-edit --no-stat --recurse-submodules = no origin

Resultó que después de presionar el Commit allbotón para crear una confirmación local, Visual Studio había dejado un archivo sin confirmar y este elaborado mensaje de error en realidad significaba: "Confirmar todos sus cambios".

Ese archivo faltante era el modelo Entity Framework 6, y a menudo se muestra como un archivo no confirmado, aunque no ha cambiado nada en él.

Puede confirmar todos o deshacer todos los cambios que no se confirman.

ZenekMetalGuru
fuente
2
El mío era similar a esto. Estaba teniendo un problema en el que la versión más nueva de VS 2017 (15.3.2) de repente me hacía revisar constantemente este extraño archivo storage.ide. Tuve que seguir confirmando ese archivo después de cerrar / abrir VS y eso finalmente funcionó. Descargo de responsabilidad: también completé los pasos en la respuesta más aceptada anterior.
jaredbaszler
Me acabo de dar cuenta de que todos los archivos que cometí, todavía estaban en "Cambios". Los volví a comprometer. Y el problema se ha ido.
Jude
5

Esto parece suceder en VS 2017 cuando hay un compromiso pendiente que entraría en conflicto con el tirón. Si va a un terminal de comando y realiza un "origen de extracción de git", generalmente obtendrá el error que es la fuente de la confusión. Para resolverlo, verifique todos sus cambios en VS 2017 y luego intente extraer o sincronizar nuevamente desde VS 2017. No hace falta decir ... este no es el comportamiento deseado en VS 2017.

GGleGrand
fuente
4

Tuve el mismo problema. Reiniciar Visual Studio funcionó para mí ... Puede probarlo antes de reinstalar cosas.

Éric Bergeron
fuente
4

Estoy usando GitKraken y Visual Studio 2017.

Cuando GitKraken clona un repositorio, deja una dirección de búsqueda como "[email protected]: user / Repo.git", en lugar de " https://github.com/user/Repo.git ".

Para corregir esto, vaya al explorador del equipoConfiguraciónRepositorio Ajustesmandos a distanciaEditar , y el cambio "git @" a "https: //" y ":" a "/".

Avius
fuente
4

¡Tuve este problema después de cambiar la contraseña de acceso git!

Tuve que restablecer las credenciales a través de la consola de PowerShell.

En el nivel de carpeta del repositorio de git, el script era el siguiente:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

Se le solicitará el usuario y luego la contraseña.

El siguiente comando ya no solicitará autenticación:

git fetch
Wagner Melo
fuente
4

ingrese la descripción de la imagen aquí

Cuando hago pull / fetch / push recibí el error anterior en mi ventana de salida, seguí la siguiente solución, resolvió mi problema.

Si está utilizando Visual Studio 2017 Enterprise Edition, reemplace el ID de usuario con su ID de usuario en el siguiente comando y ejecute este comando en la ventana de ejecución de Windows (tecla de Windows + R).

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

ingrese la descripción de la imagen aquí

Esto le pedirá una contraseña, ingrese su contraseña. Se abrirá una nueva instancia de Visual Studio y comenzará a funcionar correctamente ...

Rex
fuente
3

Tuve el mismo problema. Los siguientes pasos me resolvieron el problema:

  1. Copia de seguridad y elimine "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git"
  2. Instale la última versión de Git: https://git-scm.com/download/win
Vortex852456
fuente
2
Tengo dos maquinas. Ambos tienen VS2017RTM en ellos. Misma versión de VS y misma versión de GitHub.VisualStudio. Ninguna carpeta de TeamExplorer tiene una carpeta Git. Uno funciona y el otro no. :(
Bill Noel
3

¡Guauu! ¡Hay tantas soluciones a este problema!

¡Prueba esta fácil!

¡Cambia tu contraseña!

Justo el otro día, comencé a recibir este aviso de que mi contraseña caducaría en 14 días. Ahora 2 días después, recibo este error:

ingrese la descripción de la imagen aquí

Realmente no tenía ganas de hackear git o las bibliotecas OpenSSL, ¡así que simplemente cambié la contraseña de Windows en mi computadora y funcionó!

Actualizar

Entonces comenzó a suceder nuevamente. Desde Team Explorer, vaya a Sincronizar . Luego haga Acciones> Abrir símbolo del sistema . En el símbolo del sistema, escriba git push origin. Eso podría funcionar para usted.

Encadenar
fuente
¡Esta parece ser la solución más inteligente! Gracias;)
markzzz
2

Tuve un problema muy similar y las instrucciones de un técnico de Microsoft me lo solucionaron:

  • Cierre todas las instancias de Visual Studio.
  • Abra el Administrador de tareas y verifique si se están ejecutando los Servicios TFS. Seleccione cada uno de ellos y haga clic en Finalizar árbol de procesos.
  • Busque la carpeta a continuación y elimine todos los contenidos y carpetas en% LocalAppData% \ Microsoft \ Team Foundation {versión} \ Cache
  • Vaya al Panel de control -> Cuentas de usuario -> Administre su credencial -> Credencial de Windows, seleccione la URL de VSTS para eliminarla
  • Luego vaya a "C: \ Users \ NOMBRE DE USUARIO \ AppData \ Local \ GitCredentialManager \ tenant.cache" y elimínelo
  • Vaya también a "C: \ Users \ NOMBRE DE USUARIO \ AppData \ Local.IdentityService" y elimínelo
Casey
fuente
1

Me encontré con este problema también. Había sincronizado mi código más temprano en el día, así que no tenía sentido que de repente diera este error de Git. Reiniciar Visual Studio no hizo ninguna diferencia. Después de revisar las respuestas anteriores y no encontrar una solución clara, decidí intentar sincronizar fuera de Visual Studio usando TortoiseGit que ya había instalado. Esto funcionó. Luego pude sincronizar dentro de Visual Studio normalmente. Si aún no tiene TortoiseGit, puede descargarlo (gratis) de tortoisegit.org.

alemán
fuente
VS es incapaz de hacer un nuevo origen remoto. Esto es lo único que funciona para mí. Realiza el empuje inicial al control remoto en la línea de comando o con Tortoise y luego VS puede usarlo.
HackSlash el
1

En mi caso, Windows había ejecutado una actualización y estaba esperando reiniciar la PC. No había visto ninguna notificación pero, bueno ... apagarlo y encenderlo nuevamente solucionó el problema.

Inténtelo primero antes de usar cualquiera de estos directorios y aplicaciones de Visual Studio.

RLH
fuente
1

Recibí los siguientes mensajes de error usando Visual Studio 2017 CE.

Error al enviar al repositorio remoto. Vea la ventana de Salida para más detalles.

La ventana de salida mostró lo siguiente:

Se encontró un error al empujar al repositorio remoto: el proceso de Git falló inesperadamente. PushCommand.ExecutePushCommand

Traté de impulsar los cambios usando GitHub Desktop. Muestra el siguiente mensaje de error.

No se pueden enviar estas confirmaciones ya que contienen una dirección de correo electrónico marcada como privada en GitHub.

Eso es. Solución:

Abra la cuenta de GitHub >> Configuración >> Correos electrónicos >> Desmarque "Mantener mi dirección de correo electrónico privada"

Está hecho. Ese fue el problema en mi caso.

Pranav
fuente
Este fue mi problema también. Tuve que desmarcar la Block command line pushes that expose my emailconfiguración, enviar confirmaciones pendientes. Luego configuré mi dirección de correo electrónico sin respuesta de GitHub en git global config. Las confirmaciones futuras se asociaron con ese correo electrónico y ahora se pueden enviar incluso con el Block command line pushes that expose my emailencendido nuevamente.
SvenAelterman
1

Lo hice funcionar eliminando username @ de http: //username@asdf/xxx/yy/zzz.git en la configuración del repositorio:

Team ExplorerConfiguraciónRepositorio Ajustesmandos a distanciaEditar

Michael Nylund
fuente
1

Pude solucionar el problema usando esta línea en la línea de comando sin reinstalar nada.

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

Simplemente reemplace {myserver} con el nombre de host de su servidor (sin http o número de puerto).

Después de eso, VS pudo conectarse correctamente.

Fuente: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintaining-this-why-does-the- gcm-no-funciona-como-se-espera-con-tfs

maxim1500
fuente
1

Este problema siempre se me ocurre cuando tengo que cambiar mi contraseña. Parece que siempre hay otro problema con mis viejas credenciales que no se actualizan.

  1. Vaya a su Administrador de credenciales de Windows

  2. Eliminar todas las entradas de credenciales Tfs

Terminado

Peter
fuente
1

Tuve el mismo error emergente en VS 2017 al intentar eliminar una rama remota. El problema era que la sucursal no estaba en el servidor (usando TFS2018 con GIT), pero de alguna manera Visual Studio lo hizo aparecer en la sección "remoto / origen". Esto significaba que no podía eliminar la rama remota (VS estaba dando este error, mientras que el explorador del servidor no mostraba la rama en absoluto).

Aquí se explica cómo solucionarlo (probado en VS 2017):

  1. En Visual Studio, haga doble clic en su rama remota "deshonesta";
  2. VS debería haber creado una rama local a partir de él;
  3. Haga clic derecho en la rama local, seleccione "Desarmar rama remota";
  4. Haga clic derecho en la rama local, seleccione "Push branch";
  5. Ahora deberías tener un verdadero rama remota correspondiente;
  6. Elimine la rama remota, luego la rama local.

Espero que ayude a alguien que termina en este hilo teniendo el mismo problema que yo.

XYZ
fuente
0

También tuve este problema después de obtener wgetlas herramientas de GNU y copiarlo directamente en c: \ windows . Los archivos libeay.dlly libssl.dlltambién estaban en el archivo. Cuando esos estaban en c: \ windows , tuve este problema. Quitándolos inmediatamente lo arregló. Por lo tanto, verifique si tiene estos .DLL en algún lugar de su camino, VS puede estar recogiendo la versión de otro software de estos en lugar de usar los que espera.

Nick Pirocanac
fuente
0

La respuesta de AngelBlueSky funcionó parcialmente para mí. Tuve que ejecutar estas líneas adicionales para limpiar la configuración global de Git después del paso 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

Luego git config -l(ejecutado desde cualquier repositorio de git) debería devolver solo esto:

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

Ejecute los comandos git statusy git fetchpara validar que funciona desde la línea de comandos.

Luego vaya a Visual Studio, donde sus repositorios deberían estar de vuelta, y toda sincronización / push / pull debería funcionar sin problemas.

Softlion
fuente
0

Después de instalar la última versión de Git para Windows , debe abrir el archivo de configuración para editar:

git config --global --edit

Haga clic Insert, elimine todas las configuraciones, haga clic Esc, escriba :wqy, Enterpara guardar.

Ahora puede clonar el repositorio por Bash o IDE con un usuario válido.

johnander11
fuente
0

En mi caso, no tuve que hacer nada tan drástico como desinstalar Git según algunas de las respuestas aquí; Solo tenía que usar la línea de comando en lugar de Visual Studio.

Abre cmden la raíz de tu solución e ingresa:

git pull

Luego se le informará exactamente cuál es el problema. En mi caso, me dijo que tenía cambios no confirmados que se habrían sobrescrito y que necesitaba confirmarlos antes de poder continuar.

Una vez que hice esto, la extracción tuvo éxito y pude resolver el conflicto en la herramienta de fusión.

TLDR

Use la línea de comando en lugar de Visual Studio para obtener un mensaje de error más completo.

Ben
fuente
Gracias, esto resolvió mi problema. Cambié mi contraseña de nombre de usuario de dominio y antes de hacerlo, tuve cambios sin confirmar. Cuando se usa git pull, muestra una ventana emergente de cambio de contraseña de nombre de usuario que me ayudó a comprender cuál era el problema. Luego hice git reset para perder todo el cambio anterior y luego resolvió mi problema en Visual studio
Esen
0

Estaba teniendo problemas similares. En Visual Studio 2017, con la opción Rebase resolví mi problema.

Solo tengo una rama maestra. Reescribí de maestro a origen / maestro (significa a la misma rama) e hice clic en Rebase . Antes de hacer Rebase, el estado era: cometí mis cambios, sin embargo, no pude presionar / sincronizar como mi base de sucursal local y la base de código Git no estaba sincronizada.

Pallavi
fuente
0

Complicó el problema eliminando el repositorio local para poder clonar una copia nueva. Me encontré con un nuevo error "git no se puede encontrar Git falló con un error fatal. Fatal: repositorio 'xyz' no encontrado"

Intenté todas las sugerencias que busco en Google sin resolución. El siguiente paso simple funcionó para mí y lo estoy agregando a la creciente lista de posibles resoluciones:

El resultado de git config --get http.proxy es http://google.com:80

Esto no está bien, así que me deshice de él.

git config --global --unset http.proxy

CodesOpsPSJ
fuente
0

En mi caso, una prueba fallida de la unidad Jest que impide el envío al repositorio da el mismo error genérico de "Error encontrado al empujar al repositorio remoto: Git falló con un error fatal".

Rob C
fuente