Visual Studio 2017 - Git a échoué avec une erreur fatale


153

J'utilise Visual Studio 2017 Community Edition (CE), je me suis connecté à mon compte Microsoft et je suis connecté à VSTS. Je peux voir tous mes projets et référentiels, mais lorsque j'essaye d'extraire / d'extraire / de pousser des modifications, j'obtiens l'erreur suivante:

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

Et en conséquence pour les commandes fetch et pull aussi.

J'ai installé Git pour Windows sur le programme d'installation de Visual Studio 2017 et non seulement il ne fonctionne pas avec VSTS, mais je ne peux pas non plus travailler avec aucun de mes référentiels GitHub. Quelqu'un d'autre a-t-il remarqué cela? C'est arrivé sur deux de mes machines jusqu'à présent.

Visual Studio 2015 Enterprise Edition (EE) et CE fonctionnent parfaitement pour moi.

Il semble que ce problème soit beaucoup plus reconnu que je ne le pensais, ce qui me porte à croire qu'il s'agit d'un problème lié à la manière dont Visual Studio traite Git. J'ai également remarqué que chaque fois que je mets à jour Visual Studio, ce problème réapparaît et je dois suivre les étapes de certaines des réponses ci-dessous pour que Git fonctionne à nouveau. Je ne sais pas pourquoi cela se produit, et je ne sais pas non plus si Microsoft envisage de résoudre ce problème.


2
avez-vous trouvé une solution?
JerryGoyal

J'ai essayé au moins 3 des méthodes répondues sans aucun succès. Pire encore, je n'ai même pas la moindre idée de ce qui a causé cela.
MMalke

essayez d'aller dans le dossier solution dans cmd et en utilisant git push pour voir l'erreur réelle, j'ai eu le même problème, j'ai essayé beaucoup de choses, la ligne de commande m'a donné la raison réelle de l'échec (j'ai marqué mon e-mail comme privé dans github et il était en conflit avec les détails push car cela rendrait mon email visible dans le changement de code)
Royi Mindel

1
J'obtenais également toutes sortes d'erreurs, je les ai toutes corrigées en mettant simplement à jour l'extension GitHub dans Tools > Extensions & Updates.
Daniel Bailey

Réponses:


89

Après avoir changé les informations d'identification génériques depuis Panneau de configurationComptes d'utilisateursCredential Manager pour Git , cela a fonctionné pour moi.

Entrez la description de l'image ici


1
Cela a fonctionné pour moi. Semblait aussi la plus simple de toutes les solutions suggérées
Steve Kennedy

1
Heureux que cela aide. Pourriez-vous voter s'il vous plaît si cela vous aide? Cela peut aider les autres. Merci!
wbing520 du

1
Merci pour cela. Résolution de mon problème GIt dans la dernière mise à jour VS2017
Sherwin

2
Je viens de supprimer les liens git sous les informations d'identification génériques, cela a fonctionné.
Kundan Vuppala le

2
Pour arriver à le Credential Managerrechercher simplement dans Windows 10 (utilisez la touche Windows). Cliquez ensuite sur Informations d'identification Windows. Faites défiler jusqu'à la section Informations d'identification génériques et recherchez git: https://your.tfs.server. J'ai reçu cette erreur après avoir changé mon mot de passe Windows.
goku_da_master

73

Je vais ajouter ici une solution que les réponses précédentes n'ont pas déjà mentionnée, mais c'est ce qui l'a corrigée pour moi.

  1. Accédez au dossier C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\et supprimez-le Git.

  2. Assurez-vous qu'aucune version de Git n'est installée sur votre système, supprimez-la en allant dans Panneau de configurationProgramme et fonctionnalités (TortoiseGit n'a pas besoin d'être supprimé de mon expérience, juste les installations git natives).

  3. Ouvrez le programme d'installation de Visual Studio 2017 et décochez "Git pour Windows" dans les options d'installation.

  4. Rendez-vous sur le site Web de Git et installez la dernière version de Git pour Windows.

  5. Revenez dans le programme d'installation de Visual Studio et cochez à nouveau "Git pour Windows". Il ne téléchargera pas une nouvelle version, même si cela peut sembler être le cas. Une fois cela fait, votre Git devrait fonctionner correctement avec VSTS et TF Explorer.


9
J'avais déjà installé git pour Windows. L'exécution des étapes 1 et 5 l'a fait pour moi.
Tomas Dittmann

4
Ahem - ou Enterprise au lieu de Community dans le chemin ci-dessus ;-)
PhatBuck

@Douglas vous avez absolument raison. J'ai suivi ce que vous avez mentionné. Cela résout le problème.
Tun

1
À l'étape 4, j'ai utilisé Git 64 bits pour Windows et cela a fonctionné pour moi. Mon VS2017 15.7.3 peut à nouveau pousser sur ma télécommande sans obtenir cette erreur.
qxotk

2
Pour moi, tout ce dont j'avais besoin était l'étape 1. (VS 2017 Enterprise, avait déjà installé git pour Windows.) J'ai d'abord quitté Visual Studio 2017, supprimé ce dossier GIT, puis rechargé VS 2017 et tout allait bien. gitDossier supprimé deC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
Barumpus

41

J'ai eu un problème différent. Mon ordinateur contenait des fichiers DLL OpenSSL plus anciens dans system32 et syswow64, donc pour résoudre mon problème, j'ai dû copier libeay32.dllet ssleay32.dlld'un dossier vers un autre dossier dans les dossiers 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\

À: C:\Program Files (x86)\Microsoft Visual Studio\2017\vs_edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

Réf .: Git - Impossible de cloner le référentiel distant


7
Cela a fonctionné pour moi, mais où diable avez-vous trouvé l'indice?
StingyJack

La même astuce fonctionne pour 'Professional', copiez les dll, fermez les instances VS, en rouvrez une et essayez de fermer à nouveau.
cvocvo

Ce ne sont pas les seuls fichiers qui me manquaient. Ce lien décrit comment savoir ce que vous devez copier. developercommunity.visualstudio.com/content/problem/27220/…
Riki

C'est peut-être la solution que nous recherchons tous! Je vous remercie!
tsalaroth

A travaillé pour moi, erreur:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Ogglas

14

J'ai beaucoup essayé et j'ai finalement réussi à le faire fonctionner avec une modification de ce que j'ai lu dans Git - Impossible de cloner le dépôt distant :

  1. Modifier l'installation de Visual Studio 2017 CE → supprimer Git pour Windows (programme d'installation → modifier → composants uniques).

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

  3. Modifier l'installation de Visual Studio 2017 CE → ajouter Git pour Windows (programme d'installation → modifier → composants uniques)

  4. Installez Git sur Windows (version 32 ou 64 bits), en ayant configuré Git dans le chemin système.

Peut-être que les points 2 et 3 ne sont pas nécessaires; Je n'ai pas essayé.

Maintenant, cela fonctionne bien sur mes Gogs.


1
Cela a fonctionné pour moi, mais juste après 1, j'ai également désinstallé Git pour Windows dans la liste des programmes de mon PC.
benichka

Cela a fonctionné pour moi. Il semble donc que la version de Git fournie par MS est mauvaise, et le remplacer par la version officielle de Git pour Windows résout le problème - assurez-vous simplement qu'elle est dans le PATH et que la seule version de git est installée. Je pense que nous migrons enfin vers VS2017.
Enno

12

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

et réessayer.

Prendre plaisir !


Pourquoi pensez-vous que le problème est mal crédité? Cela n'aidera que dans un cas, mais vous recevrez une autre erreur. Thi ne résout pas le problème
Alex Z

11

Voici l'erreur que j'obtenais:

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

J'ai essayé toutes les méthodes précédentes, mais elles n'ont pas fonctionné. Plus tard, j'ai découvert qu'il y avait des conflits dans le code (voir la fenêtre de sortie de Visual Studio 2017).

J'ai simplement inversé le code et cela a fonctionné.


7

Une fois, j'ai eu une telle erreur de Git alors que j'essayais de synchroniser un référentiel (j'ai essayé d'envoyer mes commits tout en ayant des modifications en attente de la part de mon collègue):

Git a échoué avec une erreur fatale. pull --verbose --progress --no-edit --no-stat --recurse-submodules = pas d'origine

Il s'est avéré qu'après avoir appuyé sur le Commit all bouton pour créer une validation locale, Visual Studio avait laissé un fichier non validé et ce message d'erreur élaboré signifiait en fait: "Validez toutes vos modifications".

Ce fichier manquant était le modèle Entity Framework 6, et il est souvent affiché comme un fichier non validé bien que vous n'y ayez rien changé.

Vous pouvez tout valider ou annuler toutes les modifications qui ne sont pas validées.


2
Le mien était similaire à ça. J'avais un problème où la nouvelle version de VS 2017 (15.3.2) me faisait soudainement constamment enregistrer cet étrange fichier storage.ide. J'ai dû continuer à valider ce fichier après avoir fermé / ouvert VS et cela a finalement fonctionné. Clause de non-responsabilité - J'ai également suivi les étapes de la réponse la plus acceptée ci-dessus.
jaredbaszler

Je viens de remarquer que tous les fichiers que j'ai validés étaient toujours sous "Modifications". Je les ai réengagés. Et le problème a disparu.
Jude

5

Cela semble se produire dans VS 2017 lorsqu'il y a un commit en attente qui entrerait en conflit avec le pull. Si vous allez sur un terminal de commande et faites un "git pull origin", vous obtiendrez généralement l'erreur qui est à l'origine de la confusion. Pour résoudre, vérifiez toutes vos modifications dans VS 2017, puis essayez à nouveau de tirer ou de synchroniser à partir de VS 2017. Inutile de dire que ce n'est pas le comportement souhaité dans VS 2017.


4

J'ai eu le même problème. Le redémarrage de Visual studio a fonctionné pour moi ... Vous pouvez l'essayer avant de réinstaller des éléments.


4

J'utilise GitKraken et Visual Studio 2017.

Lorsque GitKraken clone un référentiel, il laisse une adresse de récupération comme "git@github.com: user / Repo.git", au lieu de " https://github.com/user/Repo.git ".

Pour résoudre ce problème, allez à Team ExplorerParamètresréférentiel ParamètresDistantsModifier et le changement "git @" à "https: //" et ":" à "/".


4

J'ai eu ce problème après avoir changé le mot de passe d'accès git!

J'ai dû réinitialiser les informations d'identification via la console PowerShell.

Au niveau du dossier du référentiel git, le script était le suivant:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

Vous serez invité à entrer l'utilisateur, puis le mot de passe.

La commande suivante ne demandera plus d'authentification:

git fetch

4

entrez la description de l'image ici

Lorsque je tire / récupère / push, j'ai l'erreur ci-dessus dans ma fenêtre de sortie, j'ai suivi la solution ci-dessous, cela a résolu mon problème.

Si vous utilisez Visual Studio 2017 Enterprise Edition, remplacez userId par votre identifiant d'utilisateur dans la commande ci-dessous et exécutez cette commande dans la fenêtre d'exécution de Windows (touche Windows + R).

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

entrez la description de l'image ici

Cela demandera un mot de passe, entrez votre mot de passe. Une nouvelle instance de Visual Studio s'ouvrira et commencera à fonctionner correctement ...


3

J'ai eu le même problème. Les étapes suivantes ont résolu le problème pour moi:

  1. Sauvegardez et supprimez "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git"
  2. Installez la dernière version de Git: https://git-scm.com/download/win

2
J'ai deux machines. Les deux ont VS2017RTM sur eux. Même version de VS et même version de GitHub.VisualStudio. Aucun dossier TeamExplorer ne contient de dossier Git. L'un fonctionne et l'autre ne fonctionne pas. :(
Bill Noel

3

Hou la la! Il y a tellement de solutions à ce problème!

Essayez celui-ci facile!

Changez votre mot de passe!

L'autre jour, j'ai commencé à recevoir cet avis indiquant que mon mot de passe expirerait dans 14 jours. Maintenant 2 jours plus tard, j'obtiens cette erreur:

entrez la description de l'image ici

Je n'avais vraiment pas envie de pirater les bibliothèques git ou OpenSSL, alors j'ai simplement changé le mot de passe Windows sur mon ordinateur et cela a fonctionné!

Mettre à jour

Puis cela a recommencé à se produire. Depuis Team Explorer, accédez à Sync . Ensuite, faites Actions> Ouvrir l'invite de commande . Dans le type d'invite de commande git push origin. Cela pourrait fonctionner pour vous.


Cela semble être la solution la plus intelligente! Merci;)
markzzz

2

J'ai eu un problème très similaire et les instructions d'un technicien de Microsoft l'ont corrigé pour moi:

  • Fermez toutes les instances de Visual Studio.
  • Ouvrez le Gestionnaire des tâches et vérifiez si des services TFS sont en cours d'exécution. Sélectionnez chacun d'eux et cliquez sur Terminer l'arborescence du processus.
  • Accédez au dossier ci-dessous et supprimez tout le contenu et les dossiers dans% LocalAppData% \ Microsoft \ Team Foundation {version} \ Cache
  • Accédez au Panneau de configuration -> Comptes d'utilisateurs -> Gérer vos informations d'identification -> Informations d'identification Windows, sélectionnez l'URL VSTS pour la supprimer
  • Ensuite, allez dans "C: \ Users \ USER NAME \ AppData \ Local \ GitCredentialManager \ tenant.cache" et supprimez-le
  • Accédez également à «C: \ Users \ USER NAME \ AppData \ Local.IdentityService» et supprimez-le

1

J'ai également rencontré ce problème. J'avais synchronisé mon code plus tôt dans la journée, donc cela n'avait aucun sens que cela donne soudainement cette erreur Git. Le redémarrage de Visual Studio n'a fait aucune différence. Après avoir examiné les réponses ci-dessus et n'avoir trouvé aucune solution claire, j'ai décidé d'essayer de synchroniser en dehors de Visual Studio en utilisant TortoiseGit que j'avais déjà installé. Cela a fonctionné. J'ai ensuite pu synchroniser normalement dans Visual Studio. Si vous n'avez pas encore TortoiseGit, vous pouvez le télécharger (gratuitement) sur tortoisegit.org.


VS est incapable de créer une nouvelle origine distante. C'est la seule chose qui fonctionne pour moi. Vous effectuez le push initial vers la télécommande sur la ligne de commande ou avec Tortoise et VS peut l'utiliser.
HackSlash

1

Dans mon cas, Windows avait exécuté une mise à jour et attendait de redémarrer le PC. Je n'avais vu aucune notification mais, eh bien ... le désactiver et le rallumer a résolu le problème.

Essayez-le d'abord avant d'utiliser l'un de ces répertoires et applications Visual Studio.


1

J'ai reçu les messages d'erreur suivants à l'aide de Visual Studio 2017 CE.

Échec de l'envoi vers le référentiel distant. Voir la fenêtre Sortie pour plus de détails.

La fenêtre de sortie a montré ce qui suit:

Erreur rencontrée lors de l'envoi vers le référentiel distant: le processus Git a échoué de manière inattendue. PushCommand.ExecutePushCommand

J'ai essayé de pousser les modifications en utilisant GitHub Desktop. Il affiche le message d'erreur suivant.

Impossible de pousser ces commits car ils contiennent une adresse e-mail marquée comme privée sur GitHub.

C'est tout. Solution:

ouvrir le compte GitHub >> Paramètres >> E-mails >> Décochez "Garder mon adresse e-mail privée"

C'est fait. C'était le problème dans mon cas.


C'était aussi mon problème. J'ai dû décocher le Block command line pushes that expose my emailparamètre, pousser les commits en attente. Ensuite, j'ai configuré mon adresse e-mail de non-réponse GitHub dans git global config. Tous les futurs commits ont ensuite été associés à cet e-mail et peuvent maintenant être poussés même avec le Block command line pushes that expose my emailréactivé.
SvenAelterman


1

J'ai pu résoudre le problème en utilisant cette ligne dans la ligne de commande sans rien réinstaller.

git config - identifiant global. {monserveur} .authority NTLM

Remplacez simplement {myserver} par le nom d'hôte de votre serveur (sans http ni numéro de port).

Après cela, VS a pu se connecter correctement.

Source: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintaining-this-why-does-the- gcm-ne-fonctionne-pas-comme-attendu-avec-tfs


1

Ce problème se produit toujours pour moi - lorsque je dois changer mon mot de passe. J'ai l'impression qu'il y a toujours un autre problème avec mes anciennes informations d'identification qui ne sont pas mises à jour.

  1. Accédez à votre gestionnaire d'informations d'identification Windows

  2. Supprimer toutes les entrées d'informations d'identification Tfs

Fini


1

J'ai eu la même erreur dans VS 2017 en essayant de supprimer une branche distante. Le problème était que la branche n'était pas sur le serveur (en utilisant TFS2018 avec GIT), mais en quelque sorte Visual Studio l'a fait apparaître dans la section "remote / origin". Cela signifiait que je ne pouvais pas supprimer la branche distante (VS donnait cette erreur, tandis que l'explorateur de serveur n'a pas du tout montré la branche).

Voici comment y remédier (testé dans VS 2017):

  1. Dans Visual Studio, double-cliquez sur votre branche distante «non fiable»;
  2. VS aurait dû créer une branche locale à partir de celui-ci;
  3. Faites un clic droit sur la branche locale, sélectionnez "Désinstaller la branche distante";
  4. Faites un clic droit sur la branche locale, sélectionnez "Push branch";
  5. Vous devriez maintenant avoir un vrai branche distante correspondante;
  6. Supprimez la branche distante, puis la branche locale.

J'espère que cela aidera quelqu'un qui se retrouve sur ce fil à avoir le même problème que moi.


0

J'ai également eu ce problème après avoir obtenu wgetdes outils GNU et l'avoir copié directement dans c: \ windows . Les fichiers libeay.dllet libssl.dllétaient également dans l'archive. Quand ceux-ci étaient dans c: \ windows , j'ai eu ce problème. Leur suppression a immédiatement corrigé le problème. Donc, vérifiez si vous avez ces .DLL quelque part dans votre chemin, VS peut prendre la version d'un autre logiciel de ceux-ci au lieu d'utiliser celles qu'il attend.


0

La réponse d'AngelBlueSky a fonctionné en partie pour moi. J'ai dû exécuter ces lignes supplémentaires pour nettoyer la configuration globale de Git après l'étape 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

Ensuite git config -l(exécuté à partir de n'importe quel dépôt git) ne devrait renvoyer que ceci:

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

Exécutez les commandes git statuset git fetchpour valider qu'il fonctionne à partir de la ligne de commande.

Ensuite, allez dans Visual Studio, où vos référentiels devraient être de retour, et toutes les synchronisations / push / pull devraient fonctionner sans problèmes.


0

Après avoir installé la dernière version de Git pour Windows, vous devez ouvrir le fichier de configuration à modifier:

git config --global --edit

Cliquez Insert, supprimez tous les paramètres, cliquez Esc, tapez :wqet, Enterpour enregistrer.

Vous pouvez maintenant cloner le référentiel par Bash ou IDE avec un utilisateur valide.


0

Dans mon cas, je n'ai rien eu à faire d'aussi radical que de désinstaller Git selon certaines des réponses ici; Je devais juste utiliser la ligne de commande au lieu de Visual Studio.

Ouvrez cmdà la racine de votre solution et entrez:

git pull

On vous dira alors exactement quel est le problème. Dans mon cas, cela m'a dit que j'avais des modifications non validées qui auraient été écrasées et que je devais les valider avant de pouvoir continuer.

Une fois que j'ai fait cela, l'extraction a réussi et j'ai pu résoudre le conflit dans l'outil de fusion.

TLDR

Utilisez la ligne de commande au lieu de Visual Studio pour obtenir un message d'erreur plus complet.


Merci d'avoir résolu mon problème. J'ai changé le mot de passe de mon nom d'utilisateur de domaine et avant, j'avais des modifications non validées. Lorsqu'il est utilisé git pull, il affiche une fenêtre contextuelle de modification du mot de passe du nom d'utilisateur qui m'a aidé à comprendre quel était le problème. Ensuite, j'ai réinitialisé git pour perdre tous les changements précédents, puis cela a résolu mon problème dans Visual studio
Esen

0

J'avais des problèmes similaires. Dans Visual Studio 2017, avec l' option Rebase , j'ai résolu mon problème.

Je n'ai qu'une branche principale. Je rebase du maître à l'origine / maître (c'est-à-dire vers la même branche) et clique sur Rebase . Avant de faire Rebase, le statut était, j'ai été validé mes modifications mais pas en mesure de pousser / synchroniser car ma base de branche locale et la base de code Git n'étaient pas synchronisées.


0

A aggravé le problème en supprimant le dépôt local afin que je puisse cloner une nouvelle copie. J'ai été confronté à une nouvelle erreur "git ne peut pas être trouvé Git a échoué avec une erreur fatale.fatal: dépôt 'xyz' non trouvé"

J'ai essayé toutes les suggestions sur Google sans résolution. L'étape simple suivante a fonctionné pour moi et je l'ajoute à la liste croissante des résolutions possibles:

git config --get http.proxy le résultat est http://google.com:80

ce n'est pas juste, alors je m'en suis débarrassé.

git config --global --unset http.proxy



0

Dans mon cas, un test unitaire Jest échouant empêchant le push vers le référentiel donne la même erreur générique de "Erreur rencontrée lors du push vers le référentiel distant: Git a échoué avec une erreur fatale."

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.