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

J'utilise Visual Studio 2017 Community Edition (CE), et j'ai signé sur mon compte Microsoft et je suis connecté à VSTS. Je peux voir tous mes projets et dépôts, mais quand je tente de tirer/fetch / push n'importe quels changements 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 L'installateur Visual Studio 2017 et non seulement il ne fonctionne pas avec VSTS, je suis incapable de travailler avec mes dépôts GitHub aussi. Quelqu'un d'autre a remarqué cela? C'est arrivé sur deux de mes machines.

Visual Studio 2015 Enterprise Edition (EE) et CE travail tout à fait acceptable pour moi.

il semble que cette question a obtenu beaucoup plus de reconnaissance que je pensais qu'il serait ce qui m'amène à croire que c'est un problème avec la façon dont Visual Studio traite avec Git. J'ai aussi remarqué que chaque fois que je mets à jour Visual Studio, ce problème réapparaît, et je dois passer par les étapes dans certaines des réponses ci-dessous pour obtenir 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.

97
demandé sur Peter Mortensen 2017-03-08 12:48:16

25 réponses

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

  1. naviguez vers C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ et supprimez le dossier Git .

  2. assurez-vous qu'il n'y a aucune version de Git installé sur votre système, retirez - le en allant à Panneau de contrôle programme et caractéristiques (TortoiseGit ne doit pas être retiré de mon expérience, juste des installations git natives).

  3. ouvrez L'installateur Visual Studio 2017 et untick" Git For Windows " dans les options d'installation.

  4. allez sur le git website et installez la dernière version de Git pour Windows.

  5. retourne dans Visual Studio installer et cocher la case "Git pour Windows " encore. Il ne va pas télécharger une nouvelle version, même si elle peut ressembler à elle est. Après cela, votre Git devrait être parfait avec VSTS et TF Explorer.

38
répondu Toby 2018-06-12 05:42:16

j'ai eu un autre problème. Mon ordinateur contenait des fichiers DLL plus anciens OpenSSL dans system32 et syswow64 donc pour corriger mon problème, j'ai dû copier libeay32.dll et ssleay32.dll d'un dossier à un autre dossier dans les dossiers Git de Visual Studio 2017.

FROM: C:\Program Files (x86)\Microsoft Visual Studio17\ vs_edition \Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\

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

Réf.: Git - ne Peut pas cloner le repository distant

37
répondu flatrick 2018-06-12 05:05:51

après que j'ai changé les références génériques de Panneau de contrôle comptes D'utilisateur Gestionnaire de justificatifs pour Git , cela a fonctionné pour moi.

Enter image description here

13
répondu wbing520 2018-06-13 15:42:33

j'ai essayé beaucoup et j'ai finalement obtenu de travailler avec une certaine modification de ce que j'ai lu dans Git-Can't clone remote repository :

  1. modifier Visual Studio 2017 installation CE → supprimer Git for windows (installer → modifier → composants simples).

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

  3. Modifier Visual Studio 2017 installation ce → ajouter Git pour windows (installer → modifier des composants simples)

  4. installez Git sur windows (version 32 ou 64 bits), avec Git dans le chemin système configuré.

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

maintenant ça marche bien sur mes Gogs.

12
répondu AngelBlueSky 2018-06-12 05:04:01

C'est l'erreur que j'ai eue:

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 Visual Studio 2017).

j'ai simplement inversé le code et ça a marché.

10
répondu JerryGoyal 2018-06-12 05:09:40

j'ai déjà eu une erreur de Git alors que j'essayais de synchroniser un dépôt (j'ai essayé d'envoyer mes commits alors que j'avais des modifications en attente de ma 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 bouton Commit all pour créer un commit local, Visual Studio avait quitté un fichier non engagé et ce message d'erreur élaboré signifiait en fait: "Commit all your changes".

ce fichier manquant était le modèle Entity Framework 6, et il est souvent montré comme fichier non engagé bien que vous n'ayez pas changé quoi que ce soit.

Vous pouvez le faire valider l'ensemble ou d'annuler toutes les modifications qui ne sont pas commis.

7
répondu ZenekMetalGuru 2018-06-13 05:22:33

cela semble se produire dans VS 2017 quand il y a une propagation en attente qui serait en conflit avec l'attraction. Si vous allez à un terminal de commande et faites un "git pull origin", vous obtiendrez généralement l'erreur qui est la source de la confusion. Pour résoudre ce problème, vérifiez tous vos changements dans VS 2017 et essayez à nouveau le pull ou la sync à partir de VS 2017. Il va sans dire ... ce comportement n'est pas souhaité dans VS 2017.

5
répondu GGleGrand 2017-10-26 09:02:07

J'utilise GitKraken et Visual Studio 2017.

quand GitKraken Clone un dépôt, il laisse l'adresse fetch comme "git@github.com:user/Repo.git", au lieu de" https://github.com/user/Repo.git ".

Pour corriger cela, allez dans Team Explorer Paramètres → "151970920 Référentiel" Paramètres → Télécommandes Modifier , et le changement "git@" à "https://" et ":""/".

3
répondu Avius 2018-06-13 15:34:30

j'ai eu le même problème. redémarrer Visual studio a fonctionné pour moi... Vous pouvez essayer avant de réinstaller des trucs.

2
répondu Éric Bergeron 2017-06-05 19:18:47

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

  1. Backup and delete "C:\Program fichiers (x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\common extensions\Microsoft\TeamFoundation\Team Explorer\Git"
  2. installer la dernière version de Git: https://git-scm.com/download/win
2
répondu Undercover1989 2018-06-12 05:06:22

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

1
répondu user1828192 2017-06-26 19:48:54

dans mon cas, Windows avait lancé une mise à jour et attendait de redémarrer le PC. Je n'avais pas vu de notifications, mais ... .. l'éteindre et l'allumer à nouveau a réglé le problème.

essayez d'abord cela avant de jouer avec n'importe lequel de ces répertoires et applications Visual Studio.

1
répondu RLH 2018-06-13 05:16:23

j'ai reçu les messages d'erreur suivants en utilisant Visual Studio 2017 CE.

N'a pas pu pousser vers le dépôt distant. Voir la fenêtre de Sortie pour plus de détails.

la fenêtre de sortie montrait ce qui suit:

erreur rencontrée en poussant vers le dépôt distant: le processus Git a échoué de manière inattendue. PushCommand.Exécutepushcommand

j'ai essayé pour pousser les changements en utilisant Github Desktop. Il affiche 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 ça. Solution:

ouvrir un compte GitHub > > paramètres > > courriels > > décochez "garder mon adresse courriel privée"

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

1
répondu Pranav 2018-06-13 05:18:24

j'ai pu régler le problème en utilisant cette ligne de commande sans rien réinstaller.

git config --global d'identification.{serveur}.autorité NTLM

il suffit de remplacer {myserver} par le nom d'hôte de votre serveur (sans numéro de port ou http).

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

Source: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#q-i-thought-microsoft-was-maintaining-this-why-does-the-gcm-not-work-as-expected-with-tfs

1
répondu maxim1500 2018-09-14 13:53:11

j'ai aussi eu ce numéro après avoir reçu wget des outils GNU, et l'avoir copié directement dans c:\windows . Les fichiers libeay.dll et libssl.dll se trouvaient également dans les archives. Quand ils étaient dans c:\windows , j'ai eu ce problème. Enlever immédiatement fixé. Donc, vérifiez si vous avez ces .DLLs quelque part dans votre chemin, VS peut être ramasser la version d'un autre logiciel de ceux-ci au lieu d'utiliser ceux qu'il attend.

0
répondu Nick Pirocanac 2017-08-22 02:35:37

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

puis git config -l (exécuté à partir de n'importe quelle git repo) devrait retourner seulement 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 status et git fetch pour valider que cela fonctionne à partir de la ligne de commande.

puis allez à Visual Studio, où votre les dépôts devraient être de retour, et tous sync/push/pull devraient fonctionner sans problème.

0
répondu Softlion 2018-06-12 05:11:56

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

git config --global --edit

, Cliquez sur Insérer , supprimez tous les paramètres, cliquez sur Esc , de type :wq et, Entrée pour enregistrer.

maintenant vous pouvez cloner le dépôt par Bash ou IDE avec un utilisateur valide.

0
répondu johnander11 2018-06-13 15:29:43

j'ai eu 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 de maître à Origine / maître (signifie à la même branche) et cliqué Rebase . Avant de faire Rebase, le statut était, j'ai été engagé mes changements cependant pas en mesure de push/sync car ma base de branche locale et la base de code Git n'était pas synchronisé état.

0
répondu Pallavi 2018-06-13 15:33:19

Je l'ai fait fonctionner en supprimant nom d'utilisateur@ de http://username@asdf/xxx/yy/zzz.git dans les paramètres du dépôt:

Team Explorer Paramètres → "151910920 Référentiel" Paramètres → Télécommandes Modifier

0
répondu Michael Nylund 2018-06-13 15:40:50

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

j'ai essayé tout ce que je google suggestions sur sans résolution. La simple étape suivante a fonctionné pour moi et je l'ajoute à la liste croissante de résolutions possibles:

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

ce n'est pas juste donc je me suis débarrassé de lui.

git config --global --unset http.mandataire

0
répondu CodesOfPSJ 2018-06-26 15:25:35

, Essayez:

fermer toutes les instances de VS puis supprimer le compte pour le serveur TFS dans le Panneau de configuration - > Comptes D'utilisateur - > Gestionnaire Credentail

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

0
répondu Luiz F C Leite 2018-06-27 13:04:51

dans mon cas, un test de l'unité jest empêchant la poussée vers le repo donne la même erreur générique de" erreur rencontrée en poussant vers le dépôt distant: Git a échoué avec une erreur fatale."

0
répondu Rob C 2018-08-07 08:17:21

S'il ne fonctionne pas de Team Gérer les connexions dépôts Git locaux Clone , on peut essayer l'une ou l'autre de ces deux façons.

Menu Fichier Page de Démarrage Ouvrir Allez-Git

(ou)

Menu Fichier Ouvrir Ouvrir à partir de la source de contrôle

-1
répondu Raj Karri 2018-06-12 05:07:10

dans mon cas, je n'ai pas eu à faire quelque chose d'aussi drastique que Désinstaller Git selon certaines des réponses ici; j'ai juste dû 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 changements non engagés qui auraient été écrasés et que j'avais besoin de les engager avant de pouvoir continuer.

une fois que j'ai fait cela la traction 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.

-1
répondu Ben 2018-06-13 15:31:03

ci-dessous résout mon problème.

  1. Naviguer vers C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ et supprimez le dossier Git.

    assurez-vous qu'il n'y a aucune version de Git installée sur votre système, retirez-le en allant à Panneau de contrôle programme et caractéristiques (TortoiseGit n'a pas besoin d'être retiré de mon expérience, tout natives Git installations).

  2. ouvrir le Visual Studio 2017 installer et untick" Git For Windows " dans les options d'installation.

  3. allez sur le site web de Git et installez la dernière version de Git pour Windows.

  4. retournez dans L'installateur de Visual Studio et cochez à nouveau" Git for Windows". Il ne pas télécharger une nouvelle version même si elle peut sembler comme il est. Après cela, votre installation Git devrait être très bien avec VSTS et TF Explorer.

-2
répondu Tun 2018-06-13 15:40:01