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.
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.
-
naviguez vers
C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\
et supprimez le dossierGit
. -
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).
-
ouvrez L'installateur Visual Studio 2017 et untick" Git For Windows " dans les options d'installation.
-
allez sur le git website et installez la dernière version de Git pour Windows.
-
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.
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
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.
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 :
-
modifier Visual Studio 2017 installation CE → supprimer Git for windows (installer → modifier → composants simples).
-
supprimer tout de
C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git
. -
Modifier Visual Studio 2017 installation ce → ajouter Git pour windows (installer → modifier des composants simples)
-
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.
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é.
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.
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.
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 ":""/".
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.
j'ai eu le même problème. Les étapes suivantes ont résolu le problème pour moi:
- Backup and delete "C:\Program fichiers (x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\common extensions\Microsoft\TeamFoundation\Team Explorer\Git"
- installer la dernière version de Git: https://git-scm.com/download/win
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.
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.
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.
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.
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.
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.
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.
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.
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
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
, 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
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."
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
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.
ci-dessous résout mon problème.
-
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).
-
ouvrir le Visual Studio 2017 installer et untick" Git For Windows " dans les options d'installation.
-
allez sur le site web de Git et installez la dernière version de Git pour Windows.
-
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.