web-dev-qa-db-fra.com

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

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'essaie d'extraire/d'extraire/de pousser des modifications, le message d'erreur suivant s'affiche:

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

Et en conséquence pour les commandes chercher et tirer aussi.

J'ai installé Git for Windows sur le programme d'installation de Visual Studio 2017 et, non seulement il ne fonctionne pas avec VSTS, je ne peux pas non plus travailler avec aucun de mes référentiels GitHub. Quelqu'un 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 ait reçu une reconnaissance beaucoup plus grande que ce que je pensais, ce qui me porte à croire qu'il s'agit d'un problème lié à la façon dont Visual Studio traite avec Git. J'ai également remarqué que ce problème réapparaissait à chaque fois que je mettais à jour Visual Studio et que je devais suivre les étapes décrites dans 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 prévoit de résoudre ce problème.

113
Toby

Je vais ajouter ici une solution que les réponses précédentes n’ont pas encore mentionnée, mais c’est ce qui a réglé le problème pour moi.

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

  2. Assurez-vous qu’aucune version de Git n’est installée sur votre système, supprimez-la en allant sur Panneau de configurationProgramme et fonctionnalités (TortoiseGit n’a pas besoin d’être supprimé de mon expérience, il suffit d’installer Git en natif) .

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

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

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

49
Toby

J'ai eu un problème différent. Mon ordinateur contenait d'anciens fichiers OpenSSL DLL dans system32 et syswow64. Pour résoudre mon problème, j'ai donc dû copier libeay32.dll et ssleay32.dll d'un dossier à un autre dans les dossiers Git de 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 - Impossible de cloner le référentiel distant

40
flatrick

Après avoir modifié les informations d'identification génériques à partir de Panneau de configurationComptes d'utilisateursGestionnaire des informations d'identification pour Git, cela a fonctionné pour moi.

 Enter image description here

37
wbing520

J'ai beaucoup essayé et je l'ai finalement obtenu avec quelques modifications de ce que j'ai lu dans Git - Impossible de cloner le référentiel distant:

  1. Modifiez l'installation de Visual Studio 2017 CE → supprimez Git pour Windows (programme d'installation → modifier → composants individuels).

  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 individuels)

  4. Installez Git sous Windows (version 32 ou 64 bits), en configurant 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.

13
AngelBlueSky

C'est l'erreur que je devenais:

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é.

11
JerryGoyal

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 validations tout en ayant des modifications en attente de mon collègue):

Git a échoué avec une erreur fatale. pull --verbose --progress --no-edit --no-stat --recurse-submodules = no Origin

Il s’est avéré qu’après avoir appuyé sur la 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 réalité: "Valider toutes vos modifications".

Ce fichier manquant était du modèle Entity Framework 6 et apparaît souvent comme fichier non validé bien que vous n’ayez rien changé.

Vous pouvez valider ou annuler toutes les modifications non validées.

7
ZenekMetalGuru

Cela semble se produire dans VS 2017 lorsqu'il existe une validation en attente qui serait en conflit avec l'attraction. 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 ce problème, 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 comportement n'est pas souhaité dans VS 2017.

5
GGleGrand

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.

3
Éric Bergeron

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\Professionnel\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git"
  2. Installez la dernière version de Git: https://git-scm.com/download/win
3
Undercover1989

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

et réessayez ..

Prendre plaisir !

2
Abdellah Azizi

Je l'ai obtenu en supprimant username @ de http: //nomdutilisateur@asdf/xxx/yy/zzz.git dans les paramètres du référentiel:

Team ExplorerParamètresParamètres du référentielTélécommandesModifier

1
Michael Nylund

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

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

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

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

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

Ne peut pas pousser ces commits car ils contiennent une adresse email marquée comme privée sur GitHub.

C'est tout. Solution:

ouvrir un compte GitHub >> Paramètres >> E-mails >> Désélectionnez "Conserver mon adresse électronique confidentielle"

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

1
Pranav

J'ai rencontré ce problème aussi. J'avais synchronisé mon code un peu plus tôt dans la journée, donc cela n'avait aucun sens de donner 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 ne pas trouvé de solution claire, j'ai décidé d'essayer de synchroniser en dehors de Visual Studio à l'aide de TortoiseGit que j'avais déjà installé. Cela a fonctionné. J'ai ensuite pu synchroniser normalement dans Visual Studio. Si vous ne possédez pas encore TortoiseGit, vous pouvez le télécharger (gratuitement) sur tortoisegit.org.

1
user1828192

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 réactiver a corrigé le problème.

Commencez par essayer cela avant de vous lancer dans l'un de ces répertoires et applications Visual Studio.

1
RLH

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

git config - informations d'identification globales. {myserver} .authority NTLM

Il suffit de remplacer {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- le-gcm-pas-travail-comme-prévu-avec-tfs

1
maxim1500

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 cette notification que mon mot de passe expirait dans 14 jours. Maintenant, 2 jours plus tard, je reçois cette erreur:

enter image description here

Je n'avais vraiment pas envie de pirater des bibliothèques git ou OpenSSL, alors je me suis contenté de changer le mot de passe Windows sur mon ordinateur et tout a fonctionné!

Mettre à jour

Puis cela a recommencé. Depuis Team Explorer, accédez à Sync. Ensuite, faites Actions> Ouvrir l'invite de commande. Dans la commande Invite, tapez git Push Origin. Cela pourrait fonctionner pour vous.

1
Jess

essayez d'installer GIT et vérifiez GIT LFS.

0
zzfima

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 prochaine commande ne demandera plus d'authentification:

git fetch
0
Wagner Melo

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

0
Rob C

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

Je n'ai qu'une branche principale. Je rebase de master en Origin/master (signifie la même branche) et clique sur Rebase . Avant de faire Rebase, l’état était, j’avais validé mes modifications, mais je n’étais pas en mesure d’appliquer/synchroniser en tant que base de ma branche locale et la base de code Git n’était pas synchronisée.

0
Pallavi

J'ai également eu ce problème après avoir obtenu wget avec les outils GNU et que je l'ai copié directement dans c:\windows . Les fichiers libeay.dll et libssl.dll étaient également dans les archives. Quand ceux-ci étaient dans c:\windows , j'avais ce problème. En les supprimant immédiatement corrigé. Alors, vérifiez si vous avez ces fichiers .DLL quelque part dans votre chemin, VS peut en prendre une version d’un autre logiciel au lieu d’utiliser celles qu’il attend. 

0
Nick Pirocanac

Dans mon cas, je n'ai rien eu de plus drastique que de désinstaller Git conformément à certaines des réponses fournies 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, il 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 cette opération effectuée, l'attraction 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.

0
Ben

Le problème a été aggravé en supprimant le dépôt local afin que je puisse cloner une nouvelle copie. J'ai été confronté à une nouvelle erreur "git introuvable. Git a échoué avec une erreur fatale.fatal: le référentiel 'xyz' est introuvable" 

J'ai essayé toutes les suggestions que je recherche sur Google sans résolution. La démarche simple suivante a fonctionné pour moi et je l’ajoute à la liste croissante de résolutions possibles: 

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

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

git config --global --unset http.proxy 

0
CodesOfPSJ

Si vous utilisez un proxy, ouvrez une invite de commande et essayez:

git config --global http.proxy <proxy address>:<port>

Plus d'infos sur: https://github.com/desktop/desktop/issues/2789

0
Simba Meek

Après avoir installé la dernière version de Git for Windows , vous devez ouvrir le fichier de configuration pour pouvoir l'éditer:

git config --global --edit

Cliquez sur Insert, supprimez tous les paramètres, cliquez sur Esc, tapez :wq et, Enter sauver.

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

0
johnander11

Ce problème me vient toujours - quand je dois changer mon mot de passe ... Je pense qu'il y a toujours un autre problème avec mes anciennes informations d'identification, ne pas être mis à jour.

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

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

Fini

0
Peter

La même erreur s'est produite dans VS 2017 lors de la tentative de suppression d'une branche distante. Le problème était que la branche n'était pas sur le serveur (à l'aide de TFS2018 avec GIT), mais Visual Studio l'a fait apparaître dans la section "remote/Origin". Cela signifiait que je ne pouvais pas supprimer la branche distante (VS émettait cette erreur, alors que l'explorateur de serveurs ne présentait pas la branche du tout).

Voici comment résoudre ce problème (testé dans VS 2017):

  1. Dans Visual Studio, double-cliquez sur votre branche distante "non autorisée";
  2. VS aurait maintenant dû créer une branche locale à partir de celle-ci;
  3. Faites un clic droit sur la branche locale, sélectionnez "Désactiver la branche distante";
  4. Faites un clic droit sur la branche locale, sélectionnez "Push branche";
  5. Vous devriez maintenant avoir un true 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
XYZ

J'ai résolu ce problème en désinstallant la version 64 bits et en installant une version 32 bits de Git.

0
tonycdp

Beaucoup de solutions ici, pour moi voici ce qui a fonctionné.

  1. J'ai d'abord changé les informations d'identification de mon Windows. Dans votre recherche Windows, recherchez "Gestionnaire des informations d'identification", puis sélectionnez "Informations d'identification Windows" et mettez à jour (option Modifier) ​​mon mot de passe avec mon nouveau mot de passe. (Panneau de configuration → Comptes d'utilisateurs → Gestionnaire des informations d'identification pour Visual Studio Git)

  2. J'ai redémarré Visual Studio et essayé de Push, mais j'ai toujours l'erreur "Echec de l'authentification".

  3. À l'étape 1, je suis retourné dans le gestionnaire des informations d'identification Windows et j'ai supprimé (option Supprimer) le compte GIT associé à Visual Studio.

0
DAVID OLASUPO

enter image description here

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

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

/ netonly/user: userId "C:\Fichiers de programme (x86)\Microsoft Visual Studio\2017\Entreprise\Common7\IDE\devenv.exe"

enter image description here

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

0
Rex Andrew
  1. Accédez à C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ 
  2. Supprimer le dossier Git
  3. Visual Studio
0
Kanna Reddy

La réponse d'AngelBlueSky a partiellement travaillé 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

Alors git config -l (exécuté depuis n’importe quel repo git) ne devrait retourner 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
[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

Exécutez les commandes git status et git fetch pour valider que cela fonctionne à partir de la ligne de commande.

Ensuite, accédez à Visual Studio, où vos référentiels doivent être de retour et où toutes les fonctions Sync/Push/Pull doivent fonctionner sans problème.

0
Softlion

Essayer:

Fermez toutes les instances de VS, puis supprimez le compte du serveur TFS dans le Panneau de configuration -> Comptes d'utilisateurs-> Gestionnaire Credentail.

Voir: https://developercommunity.visualstudio.com/content/problem/142173/after-changing-domain-password-couldnt-connect-to.html