Comment désactiver définitivement l'intégration Git dans Visual Studio 2013?

113

Je sais que vous pouvez désactiver l'intégration git en utilisant la boîte de dialogue Outils / Options, mais ce que j'ai remarqué, c'est que ce paramètre ne semble pas persister entre les sessions; c'est-à-dire que dès que vous fermez et rouvrez la solution, l'intégration Git est à nouveau activée. J'imagine que Visual Studio voit le dossier .git dans l'arborescence de mon système de fichiers solution.

Il existe une variété de plugins Visual Studio 2013 qui se comportent de manière incorrecte lorsque le plug-in Git est activé, je préfère gérer mon contrôle de source en ligne de commande, et je travaille sur quelques très gros projets pour lesquels l'intégration Git introduit des ralentissements notables en ouvrant et en travaillant avec la solution. J'aimerais l'éteindre pour de bon, car je ne l'utilise tout simplement pas ou n'en ai pas besoin. Est-ce possible?

Bryan Porter
la source
1
éventuellement utile: pour résoudre ce problème, j'ai désactivé l'extension puis modifié le contrôle de code source à l'aide de la fonction 'Lier' de la commande Changer de contrôle de la source - Pour en savoir plus: thereprogram.com/2013/04/18/visual-studio-tools-for- git /…
Tom Kerr
1
C'est l'astuce - dans Visual Studio 2013, l'intégration Git n'est pas fournie en tant qu'extension, elle est intégrée directement. Impossible de désactiver l'extension, car il n'y a pas d'extension à désactiver. Huer!
Bryan Porter
peut-être pourriez-vous l'automatiser?
klumsy
Je pourrais, mais quel déclencheur utiliserais-je pour exécuter l'automatisation? Une extension qui se déclenche en charge? Écrire une extension pour désactiver une fonctionnalité OOB semble étrange.
Bryan Porter du
1
Mon équipe a également eu ce problème. Je pense que l'astuce que nous avons utilisée était de charger une solution, de désactiver l'intégration git, puis de redémarrer VS. Vous pouvez également essayer d'installer SP 1.
Ade Miller

Réponses:

90

Comme vous l'avez dit, vous pouvez désactiver le plugin de contrôle de source pour:

  • Outils / Options
  • Cochez "Afficher tous les paramètres"
  • Contrôle de la source / sélection de plug-in
  • Réglez "Plug-in de contrôle de la source actuelle" sur "Aucun"

Ensuite, comme le dit Ade Miller: Redémarrez Visual Studio.

Mon Visual Studio fonctionnait très lentement depuis que le branchement git était activé et j'ai réussi à le désactiver "de manière persistante entre les sessions" en suivant ces étapes.

J'espère que ça aide.

Aebsubis
la source
42
Je trouve que VS réactive simplement GIT lors de la réouverture de la solution. De plus, l'extension NoGit mentionnée ci-dessous ne fonctionne pas. Hmm.
mackenir le
J'ai le même problème. VS réactive simplement l'intégration GIT au redémarrage de VS. Notez que je l'ai désactivé comme décrit ci-dessus des dizaines de fois maintenant. (il revient sans cesse)
Venryx
1
il me le réactive aussi. apparemment, quelqu'un a écrit une extension qui la désactive au démarrage. fou! stackoverflow.com/questions/22459959/… . un autre hack dans ce lien consiste à supprimer l'autorisation de Tout le monde pour la DLL du fournisseur: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider. dll
Sonic Soul
3
J'ai trouvé que l'ouverture de la fenêtre de Team Explorer l'a réactivée pour moi. Je viens donc de fermer cette fenêtre et de réactiver l'option sur Aucun. Espérons que VS n'essaiera pas de "m'aider" à nouveau sur celui-ci.
Sean
Aucune solution chargée, j'ai changé le paramètre du plugin de contrôle de source de Git à None. J'ai ensuite redémarré Visual Studio (toujours sans solution) et vérifié le paramètre, et c'était maintenant Visual Studio Team Foundation Server. Je l'ai remis à Aucun et j'ai redémarré VS à nouveau, et cette fois, il semble être bloqué.
Adrian McCarthy
52

J'ai eu le même problème avec Visual Studio 2015, où l'extension NoGit n'était même pas autorisée à s'installer. J'utilise l'option "Ouvrir la dernière solution au démarrage", alors j'ai pensé que c'était peut-être lié au problème.

J'ai donc simplement fermé ma solution avant d'aller dans "Outils - Options - Contrôle de la source", puis l' ai désactivée, redémarré VS et - voilà, SC est resté éteint! J'espère que cela le restera également dans d'autres solutions.

Artalus
la source
2
Mille fois cela. Aucun hack de registre, aucune extension personnalisée, cela fonctionne. Merci !
driis
1
Je devais combiner avec une autre chose: je mis à jour mon VisualStudio raccourci du menu de démarrage pour inclure cette ligne de commande drapeau: /ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings". Selon la référence de ligne de commande, ce paramètre «Restaure les paramètres par défaut de l'EDI, réinitialise éventuellement le fichier VSSettings spécifié». Cela semble garantir que mes paramètres souhaités sont toujours appliqués.
mcw
4
Merci! Cela a fonctionné pour moi. Une autre note - assurez-vous de fermer l'onglet Visionneuse d'équipe sur le côté droit (à côté de l'Explorateur de solutions) avant de faire cela, sinon il se réactivera automatiquement si vous cliquez dessus.
ForOhPour le
2
Assurez-vous de tuer le processus devenv.exe en fuite qui persiste après le crash de VS en laissant au moins un de vos processeurs épinglé, sinon vous pouvez le faire encore et encore et il ne restera pas. Mais si heureux quand c'est le cas et aucun piratage de registre n'est requis!
Atters
19

Pour moi, la création du référentiel avec la commande suivante résout le problème:

git init --separate-git-dir _git

Puisqu'il ne crée pas de .git répertoire , seul un .git fichier pointant vers le répertoire réel du référentiel, par exemple:

gitdir: C:/tfs/ProjectName/Main/_git

Visual Studio (au moins jusqu'à VS2015 Update 3, ce que j'utilise) ne le remarque pas!

Cela fonctionnait mieux que les variables d'environnement car les extensions Git (que j'utilise) avaient du mal à le supporter, mais traitaient parfaitement le .gitfichier pointant vers un _gitdossier.

Alex
la source
D'accord, je préfère ne pas jouer non plus avec les variables d'environnement. Cela fonctionne bien.
kaveman
J'ajouterai qu'il y a une légère faute de frappe ci-dessus, l'option est--separate-git-dir
kaveman
2
Solution de contournement impressionnante! Dieu merci, VS2013 n'a pas implémenté la lecture du .git"lien symbolique Git indépendant du système de fichiers vers le référentiel", sinon nous aurions trouvé le même problème.
KurzedMetal
2
C'est en effet la solution la plus simple existant dans toute la chaîne de réponses.
Tarik le
1
Merci beaucoup pour l'indice! Puisque l'extension Visual Studio `NoGit 'ne fonctionne pas avec VS 2017, c'est le seul moyen pour moi d'arrêter VS 2017 de" git-monitoring ":-) Merci! 👍
Ruslan Garipov
11

Une des raisons pour lesquelles git SCC est réactivé dans VS2015 à chaque fois que l'EDI se charge est CodeLens. Outils / Options / Éditeur de texte / Toutes les langues / CodeLens Il y a une case à cocher pour diverses activités impliquant TFVS et Git - le fait de cocher l'une de ces cases git activera automatiquement le plugin Git s'il pense que vous travaillez sur un dépôt git.

John Brett
la source
Réponse de travail (pour moi) qui ne suggère pas de supprimer la solution du contrôle de code source ou d'endommager l'installation de VS.
Evren Kuzucuoglu
C'est la bonne solution.
Juan Pablo Califano du
C'est vraiment important car j'ai vu que Visual Studio 2017 remplace la chose triviale de désactiver le contrôle de code source. Mais il semble que même après cela, VS 2017 crée un .vsdossier.
Royi
8

L'extension NoGit Visual Studio gère ce comportement.

Bonus: description géniale.

mxmissile
la source
cela ne fonctionne plus avec VS2013 SP3 malheureusement
thumbmunkeys
J'utilise VS 2013 Update 4 et cela fonctionne toujours très bien pour moi.
mxmissile
J'ai confondu l'intégration git avec les informations git affichées dans les codelens ... merci pour la clarification!
thumbmunkeys
3
Ne supporte pas 2015 non plus
Ben Wilde
@BenWilde Nouvelle version fonctionne avec VS 2015 Update 1 (prenez-la ici: github.com/hmemcpy/nogit )
Ruslan Garipov
8

Pour Visual Studio 2015, j'ai trouvé que CodeLens réactivait le plugin Git Source Control après le redémarrage. La désactivation de CodeLens a résolu ce problème.

Ed Andersen
la source
Ceci est important pour désactiver GIT dans Visual Studio 2017. Great catch!
Royi
6

(Mise à jour: cette réponse fournit maintenant une solution entièrement fonctionnelle basée sur ma compréhension plus approfondie de GIT_DIR et GIT_WORK_TREE)

Résumé: Git est suffisamment flexible pour que vous puissiez déplacer le .gitrépertoire vers un emplacement en dehors du répertoire de travail avec les fichiers extraits de tfs. Cela permet alors d'avoir un checkout tfs 100% propre sans aucune trace de git que visual studio est capable de détecter tout en étant capable de l'exploiter comme un référentiel git. La clé est de séparer le répertoire git (stockage du référentiel git) et l'arborescence de travail (votre code source extrait).

Dites que votre code source est extrait c:\work\someproject\tfscodeet que vous y êtes déjà exécuté git init, par exemple, Visual Studio détecte le c:\work\someproject\tfscode\.gitrépertoire et cela cause des problèmes.

Pour rendre la vie plus agréable, procédez comme suit:

$ cd /cygdrive/c/work/someproject
$ mv tfscode/.git tfscode.git
$ echo export GIT_DIR=/cygdrive/c/work/someproject/tfscode.git >> env.sh
$ echo export GIT_WORK_TREE=/cygdrive/c/work/someproject/tfscode >> env.sh
$ source env.sh
$ cd tfscode
$ git status
...
$

Cela fonctionne parfaitement en ce qui concerne le studio visuel car il ignore alors complètement tout ce qui est stocké dans git.

Hlovdal
la source
Au fait, git-tf naturaly n'aime pas les chemins cygwin, alors utilisez-les GIT_...=c:/work/...si vous prévoyez d'utiliser git tf.
hlovdal
C'est génial, mais je peux utiliser le chemin de style c: / work / ... au lieu de \ c \ work \ .. style.
zumalifeguard
6

Cela a fonctionné pour moi dans Visual Studio 2013 et 2015. Persiste même si vous fermez et rouvrez Visual Studio.

  1. Ouvrez la solution

  2. Allez dans Outils -> Options -> Contrôle de la source -> Définir le plugin sur Aucun

  3. Fermez Visual Studio et exécutez la commande ci-dessous avec les droits d'administration.

déplacer "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll" "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll.bak "
sb.olofsson
la source
VS 2015 Update 1: Le fournisseur MSFT TFS ne fonctionne plus après cela
Ruslan Garipov
... ou vous pouvez simplement désactiver CodeLens comme le suggère @John Brett.
Mike
6

Supprimer le Microsoft GitProvider de Visual Studio 2015

Lien: http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

  1. Assurez-vous que Visual Studio est fermé
  2. Ouvrir regedit
  3. Accédez à HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. Supprimer 11b8e6d7-c08b-4385-b321-321078cdd1f8 Dans le volet de détails, il devrait indiquer GitProvider
  5. Ouvrez Visual Studio
Maks
la source
1
amélioration de cette réponse - appliquez le fichier reg suivant Éditeur du Registre Windows Version 5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov
4

J'ai réussi à désactiver le fournisseur Visual Studio Git intégré en supprimant toutes les occurrences de ces clés de registre:

7FE30A77-37F9-4CF2-83DD-96B207028E1B

11b8e6d7-c08b-4385-b321-321078cdd1f8

Boklucius
la source
1
Cela fonctionne pour moi! Merci! Mais une question demeure: si finalement je mets à jour VS (en faisant une mise à jour mineure ou majeure), devrai-je supprimer à nouveau les clés?
Ruslan Garipov
4

Utilisez le nouveau package d'extension NoGit: https://github.com/markrendle/nogit/releases/download/1.0.5/NoGit.vsix

Téléchargez et ajoutez à Visual Studio: /superuser/73675/how-do-i-install-a-vsix-file-in-visual-studio

Facile.

Ben Wilde
la source
Pour installer, j'ai préféré changer manuellement l'extension .vsix en .zip, afin que vous puissiez ensuite cliquer avec le bouton droit et extraire les fichiers. Ensuite, tout ce que vous avez à faire est de placer le nouveau dossier extrait dans le dossier de données de votre application utilisateur (% appdata% \ Local \ Microsoft \ VisualStudio \ {version} \ Extensions). Ensuite, redémarrez visual studio, ouvrez Outils-> Extensions et mises à jour ..., puis recherchez "NoGit" et activez-le, puis redémarrez.
Ben Wilde
4

Cela m'a fait mal au dos pendant une semaine et je ne savais pas comment j'avais démarré ce service de contrôle de source dans VS2015. Mais je dois savoir comment l'arrêter. Voici les étapes pour découpler git / tout contrôle de source avec VS2019.

Allez dans VS -> Outils -> Options -> Contrôle de la source -> [Plug-in de contrôle de la source actuel]

Vous obtenez tout le contrôle de source possible dans votre système et l'option Aucun. Si vous choisissez Aucun, vous êtes prêt. Le mien a été réparé juste après avoir sélectionné l'option Aucun, appuyez sur OK et redémarrez le VS et plus de contrôle de source.

SRoy
la source
3

Vous devez fermer toutes les solutions VS. démarrez-en un, définissez Menu \ tools \ options \ Source Control \ Git -> None, fermez cette solution lorsque vous y êtes invité. Désormais, lors de l'ouverture d'une autre solution, les options restent "Aucune".

Sergei Meleshchuk
la source
1

VS2015 absorbait 50% de mon processeur lorsqu'il était inactif. J'ai appris que la désactivation de Git était la solution. Malheureusement, la désactivation de Git uniquement pour l'apprendre le réactive automatiquement.

Dans mon cas, je voulais en fait utiliser Git mais pas avec 50% d'utilisation du processeur.

Comme la solution NoGit n'est disponible que pour VS2013, vous pouvez télécharger à la place: Git Source Control Provider même si vous n'utilisez pas Git. Mon utilisation du processeur est maintenant de 2,2% au lieu de 50% lorsque je suis inactif.

bleu
la source
1

J'ai également des problèmes avec Git dans Visual Studio mais je pense avoir enfin trouvé une solution fonctionnelle. Jusqu'à présent, j'ai utilisé l'astuce consistant à renommer le dossier .git en _git et à ajouter un fichier texte nommé .git contenant la ligne "gitdir: _git". Mais depuis la mise à niveau vers VS2019, cela ne fonctionne plus.

J'ai essayé beaucoup de solutions différentes, mais aucune n'a fonctionné depuis que j'ai besoin de Git pour certains projets et pas pour d'autres. Mon projet de problème utilise Team Foundation Server de mon entreprise pour le contrôle de code source. Mais comme j'ai perdu du code dans les mauvaises fusions effectuées par TFS, je valide mes modifications dans un dépôt Git local avant de mettre à jour ou de valider TFS.

D:\Projects\TFS\.git Repo git local que VS ne devrait pas utiliser.

D:\Projects\TFS\ProjectA\$tf Fichiers TFS que VS doit utiliser pour ProjectA.

Peu importe comment j'ai essayé, je n'ai pas pu obtenir VS pour utiliser TFS pour ProjectA quand il a trouvé un dossier .git dans un dossier parent. Ma solution est de déplacer le dossier .git vers:

D:\Projects\TFS-GIT\.git

et créez une jonction de répertoire vers le dossier ProjectA. Démarrez une invite de commandes avec élévation de privilèges et exécutez:

mklink /J D:\Projects\TFS-GIT\ProjectA D:\Projects\TFS\ProjectA

En ouvrant le D:\Projects\TFS\ProjectA\ProjectA.slndans Visual Studio, il ne trouvera aucun dossier .git et se connectera à TFS comme il se doit.

L'exécution des commandes git à partir de D:\Projects\TFS-GITutilisera les mêmes fichiers que Visual Studio, sauf que le dossier .git est également disponible. TortoiseGit fonctionne également très bien à partir de ce dossier.

Anlo
la source
0

J'ai eu du mal à trouver une solution à cela, et je l'ai fait après tant de tentatives, donc je ne peux pas être précis. Créez un autre référentiel local à l'aide de GitHub Desktop dans un autre dossier. C'est fait, ouvrez Visual Studio sans charger de projet, maintenant Team Explorer devrait afficher les deux référentiels. Sélectionnez le nouveau référentiel comme vous devriez faire certaines opérations, à ce stade, vous pouvez "supprimer" votre ancien référentiel, puisque le nouveau est le "actif". Après cela, j'ai supprimé les fichiers .git * cachés de l'ancien dossier. L'ouverture du projet n'entraîne pas la recréation de l'ancien référentiel. J'espère que cela t'aides.

Stefano Losi
la source
0

C'est fou, mais ce qui a fonctionné pour moi était de vider ma corbeille (qui contenait le dossier .git indésirable de ma solution).

Je n'arrive toujours pas à y croire ...

Jérôme MEVEL
la source
0

Renommez «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation»

VS affichera l'erreur une seule fois et fonctionnera correctement.

Ivan Shakhov
la source
0

Cet enfer d'extension git ralentit tout dans IDE (VS 2015 dans mon cas). J'ai dû supprimer tout le dossier TeamFoundation pour m'en débarrasser. L'inconvénient est que vous ne pourrez pas utiliser Git et TeamFoundation dans Visual Studio 2015. Remarque: sauvegardez ce dossier ailleurs et restaurez-le si nécessaire.

Pour supprimer le dossier, je l'ai fait. Les étapes que j'ai suivies pour supprimer le bon dossier

La raison pour laquelle je l'ai fait est que VS 2015 génère un nom de dossier aléatoire pour l'extension TeamFoundation, de sorte que le nom de mon dossier peut être différent du vôtre.

Soundararajan
la source
-2

Outils, Options, Contrôle de la source, Sélection de plug-ins, Aucun

Dale Fraser
la source
8
Visual Studio 2013 ne persistera pas cette modification. La prochaine fois que vous ouvrirez la solution, il re-sélectionnera automatiquement le plugin Git s'il détecte un répertoire .git. Il le fera même si la solution est déjà liée à TFVC.
Mark W Dickson
-4

1) solution proche et studio visuel. 2) allez dans le répertoire de la solution et supprimez le répertoire git caché et 2 fichiers texte git. 3) ouvrez à nouveau le studio visuel. 4) Aller aux outils -> options et contrôle de source. 5) sélectionnez aucun. 6) Redémarrez Visual Studio. 7) ouvrez votre solution. 8) Aller aux outils -> options et contrôle de source à nouveau et sélectionnez TFS. 9) dans la solution, cliquez avec le bouton droit de la souris pour sélectionner ajouter le contrôle de source à la solution. 10) sélectionnez tfs.

user1813748
la source
Ils ne veulent pas de TFS et ils NE VEULENT certainement PAS supprimer le dossier .git car cela effacera tout l'historique de validation local. Ce qu'ils demandent, c'est comment empêcher VS d'utiliser les informations du dossier .git, pas comment purger ce dossier.
quetzalcoatl
-5

Réglez à nouveau Tools \ Options \ Source Control sur TFS. Fermez Visual Studio 2015. Ouvrez le dossier racine de votre code source. Supprimez le dossier nommé ".git". Redémarrer.

Charlie Benson
la source
4
Cela ressemble un peu à votre demande à l'op de supprimer complètement le dossier de git. «Je préfère gérer mon contrôle de source en ligne de commande» semble indiquer que ce ne serait pas la solution pour lui.
Evren Kuzucuoglu