Supprimer le mappage git dans Visual Studio 2015


157

Cette question n'a rien à voir avec git lui-même; il s'agit plutôt de supprimer une liaison / un mappage vers un référentiel git que Visual Studio 2015 (VS2015) a déjà vu.

Voici une capture d'écran du problème: Le bouton Supprimer est grisé

Notez que le bouton de suppression est grisé (désactivé). Comment puis-je supprimer cette entrée de la liste "Local Git Repositories"?


C'est facile avec la version NoGit actuellement non publiée, voir stackoverflow.com/a/33789257/2284031
Ben Wilde

Lors de l'ajout d'une nouvelle solution, notez que le "add to git Repository" n'est pas coché en bas à droite
Iman

1
Aucune des réponses ci-dessous ne fonctionne pour moi. J'ai donc juste utilisé une solution de contournement: fermez Studio, renommez le dossier .git avec n'importe quel nom, par exemple .git1, ouvrez Studio, renommez le dossier git en .git. N'oubliez pas que pour donner un nom de dossier commençant par un point dans Windows, vous devez ajouter un point supplémentaire à la fin du nom, c'est-à-dire ".git1".
bruha

Réponses:


210

La solution est bien plus simple que cela. Il vous suffit de supprimer trois fichiers du chemin UNC du projet.

Accédez au chemin UNC de votre solution.

Exemple: C: \ Users \ Votre nom d'utilisateur \ Documents \ Visual Studio 2015 \ Projects \ Votre dossier de projet

Puis supprimez définitivement ("SHIFT + SUPPR") les .git*fichiers et le dossier. Il y a deux fichiers et un dossier, qui peuvent être cachés, alors assurez-vous que vos dossiers et options de recherche> Afficher> afficher les fichiers, dossiers et lecteurs cachés (bouton radio) sont sélectionnés.

Les fichiers à supprimer définitivement sont:

.gitignore (fichier)

.gitattributes (fichier)

.git (dossier)

Rouvrez Visual Studio et il n'y a plus de relation avec le contrôle de source Git. Si vous vouliez aller jusqu'à le supprimer du registre comme mentionné ci-dessus, vous pourriez, mais cela ne devrait pas être nécessaire en dehors de la "gestion interne" de votre machine.


2
+1. D'après mon expérience, jouer avec le registre ne semble pas très bien fonctionner. Je l'ai fait après avoir copié mon projet dans un autre emplacement (un vm vers un local) et après avoir supprimé les fichiers .gitignore, .gitattributes et .git, cela a fait l'affaire.
cr1pto

42
-1 Cela ne supprime pas le mappage git dans VS, mais le dépôt git lui-même. La raison pour laquelle VS cesse d'être mappé à git avec ces étapes est que vous avez époustouflé le dépôt. Qu'en est-il des personnes qui veulent utiliser git, mais ne veulent pas que VS s'implique? C'est ce que demandait le PO.
Rob Levine

5
@Richard_D - en gros - si vous utilisez git de manière standard, alors ce dossier .git est git. C'est à la fois votre copie locale de tout ce qui se trouve sur votre serveur git en amont et c'est probablement la seule copie de toutes les branches locales que vous avez créées mais non transmises. De nombreuses personnes utilisent git depuis la ligne de commande ou des outils comme SourceTree et ne souhaitent pas utiliser l'intégration git dans VS. Dans ce cas, tout ce que nous voulons, c'est désactiver la prise en charge de git dans VS, pas réellement altérer notre installation git locale. Cela a-t-il plus de sens ou ai-je mal compris votre préoccupation?
Rob Levine

4
C'est une idée horrible . La négligence criminelle vient aussi à l'esprit. Les défaites de ceinture de sécurité en sont un autre. Cela ne supprime aucun mappage, cela supprime le référentiel lui-même.
Panagiotis Kanavos

2
Dans mon cas, cela a parfaitement fonctionné. Par erreur, j'avais essayé d'ajouter un projet au contrôle de code source et comment le mettre dans un référentiel GIT localement. Cela dégrade le but du contrôle de source car si le lecteur tombe en panne, je perds tout. J'ai essayé de me connecter à TFS et il a continué à revenir par défaut à GIT. En supprimant tous les fichiers GIT et en rouvrant VS, cela a parfaitement fonctionné pour moi. +! gentil monsieur!
logixologist

59

Outils -> Options -> Contrôle de la source -> Plug-in de contrôle de la source actuel: Aucun


4
C'est la vraie réponse - dans mon cas, bien que j'utilise toujours Team Foundation Server pour le contrôle de version. On dirait que Microsoft pousse le Git - je n'aime pas ça.
Alexey Shevelyov

Cela ferme simplement le projet et désactive le contrôle de source dans Visual Studio. La prochaine fois que vous ouvrez le projet, l'intégration git est réactivée.
Skye MacMaster

40

Version courte

  1. Supprimez les entrées appropriées sous HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\Repositories.

  2. Supprimez HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\General\LastUsedRepositorys'il s'agit du même que le dépôt que vous essayez de supprimer.

Contexte

Il semble que Visual Studio suit tous les référentiels git qu'il a vus. Même si vous fermez le projet qui faisait référence à un référentiel, les anciennes entrées peuvent toujours apparaître dans la liste.

Ce problème n'est pas nouveau dans Visual Studio:

VS2013 - Comment supprimer le dépôt git local de la fenêtre de l'explorateur d'équipe lorsque l'option Supprimer est toujours désactivée?

Supprimer la liaison Git de la solution Visual Studio 2013?

Tout cela semble être beaucoup de travail pour quelque chose qui devrait probablement être une fonctionnalité intégrée. Les «solutions» ci-dessus mentionnent la modification du fichier .git, etc. Je n'aime pas l'idée de devoir changer des choses en dehors de Visual Studio pour affecter les choses intérieur de Visual Studio. Bien que ma solution doive apporter quelques modifications au registre (et qu'elle soit externe à VS), au moins celles-ci n'affectent que VS. Voici le contournement (lire: hack):

Des instructions détaillées

Assurez-vous que Visual Studio 2015 est fermé avant de suivre ces étapes.

1. Ouvrez regedit.exe et accédez à

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\Repositories

Référentiels Regedit pour VS

Vous pouvez voir plusieurs valeurs de «hachage» qui représentent les référentiels suivis par VS.

2. Recherchez le référentiel git que vous souhaitez supprimer de la liste. Regardez les valeurs nameet pathpour vérifier le bon référentiel à supprimer:

vérifier le dépôt à supprimer

3. Supprimez la clé (et les sous-clés correspondantes).

(Facultatif: avant de supprimer, vous pouvez faire un clic droit et choisir Exporter pour sauvegarder cette clé en cas d'erreur.) Maintenant, faites un clic droit sur la clé (dans mon cas, c'est AE76C67B6CD2C04395248BFF8EBF96C7AFA15AA9et sélectionnez Supprimer ).

4. Vérifiez que le LastUsedRepository clé pointe vers «autre chose».

Si le mappage de référentiel que vous essayez de supprimer dans les étapes ci-dessus est stocké LastUsedRepository, vous devrez également supprimer cette clé. Accédez d'abord à:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\TeamFoundation\GitSourceControl\General

emplacement de la clé générale

et supprimez la clé LastUsedRepository(la clé sera recréée par VS si nécessaire). Si vous craignez de supprimer la clé, vous pouvez simplement modifier la valeur et la définir sur une chaîne vide:

supprimer le dernier repo utilisé

Lorsque vous ouvrez à nouveau Visual Studio 2015, la liaison du référentiel git ne doit plus apparaître dans la liste.


Je ne pense pas que jouer avec le registre soit une bonne idée ... si cela a fonctionné pour certains, cool, mais d'après mon expérience, ce n'est pas le pari le plus sûr. Voir la réponse de @ helix pour une solution beaucoup plus sûre.
cr1pto

3
@Richard_D - La réponse de helix ne supprime pas le mappage VS vers git, elle détruit le dépôt git lui-même, ce qui n'est pas ce que l'OP semble demander. Le piratage du registre n'est pas idéal, mais au moins il tente de résoudre le problème réel "J'utilise un dépôt git mais je ne veux pas que VS s'implique"
Rob Levine

Je vois que cela répond à la question du PO, mais est-ce la bonne réponse? Je ne suis pas sûr. Veuillez consulter mes questions dans la réponse de @ Helix. Merci Rob, appréciez votre perspicacité.
cr1pto

1
VS2015 restaure simplement ces entrées de registre la prochaine fois que la solution est ouverte.
Amit G

1
Les développeurs ne devraient pas avoir peur de modifier le registre Windows. Surtout quand il s'agit évidemment d'une clé Visual Studio! La suppression du répertoire .git n'est pas une option pour moi.
0xF

21

Un référentiel Git peut être supprimé de la liste des référentiels Git locaux dans VS-2015 lorsqu'il n'est plus le projet actif.

Votre capture d'écran n'a qu'un seul référentiel présent, et il est actif, vous ne pouvez donc pas le supprimer.

Lorsque vous disposez de deux référentiels ou plus, l'un d'entre eux sera affiché en GRAS représentant le référentiel actif. D'autres référentiels non actifs peuvent, à ce moment-là, être supprimés.

Ainsi, pour résoudre votre problème, si vous vous connectez à un deuxième référentiel local, vous pourrez supprimer celui que vous mettez en surbrillance dans votre capture d'écran.

Malheureusement, Team Explorer semble toujours garder un référentiel actif. Je ne sais pas comment le convaincre de lâcher prise sans passer à un autre référentiel.


Mais comment vous "connectez-vous" aux autres référentiels? Il semble qu'une fois que VS est sur un dépôt, il ne vous permet pas de vous connecter à un autre en utilisant la même option «Ajouter au contrôle Sorce» dans le menu de l'explorateur de solutions. (nvm supprime le .git et les autres fichiers git du répertoire de solution a fonctionné pour moi.)
Gram

@Gramme. Sous Local Git Repositories (voir la capture d'écran OP), vous pouvez créer un 'New' Git repository ou 'Clone' un existant. Si vous créez un nouveau référentiel git, donnez-lui un chemin sur votre disque dur local, puis cliquez sur Créer. Après cela, il apparaîtra dans votre liste. Double-cliquez sur le nouveau référentiel et il sera mis en évidence en texte gras et les coulisses deviendront le référentiel actif. À ce stade, vous pouvez supprimer d'autres référentiels de la liste.
Chris C.

Cela consiste à créer un nouveau dépôt local, et non à connecter un projet existant à un dépôt github existant. Oups, lors d'une deuxième lecture, je vois que la suppression est la seule question. Comment se connecter à l'existant ne fait pas partie de la question, mon erreur.
Gram

18

La suppression du dossier caché .git a fonctionné pour moi.


Cela transformera le dossier d'une extraction git en un dossier. Bien sûr, il ne faut pas modifier l'objectif d'un répertoire d'extraction car Visual Studio fait ceci ou cela.
Cristian Amarie

Super tard, mais merci beaucoup ... Cela a dû être l'un des matins les plus frustrants et ennuyeux de toute ma carrière jusqu'à présent, quelle fonctionnalité stupide ils ont intégrée pour gérer cela ...
haag1

11

La réponse ci-dessus n'a pas fonctionné pour moi. Les entrées de registre seraient simplement ajoutées automatiquement lorsque j'ouvrirais la solution dans Visual Studio. J'ai trouvé la résolution dans l'un des liens de la réponse de Matthews, donc le mérite lui revient toujours pour la bonne réponse.

Supprimer la liaison Git de la solution Visual Studio 2013?

Supprimer le caché .git dossier dans votre dossier de solution.

J'ai également supprimé les fichiers .gitattributeset .gitignorejuste pour garder mon dossier propre.


2
Cela ne sert à rien si vous souhaitez que le projet soit géré par git, mais pas via Team Explorer. Je trouve personnellement que Team Explorer perturbe mon utilisation de Git via un autre plugin VS, ce qui est tout à fait indésirable.
Henry Wilson

Cela ne supprime pas le complément git de VS. VS continue de battre la brousse Git et c'est aggravant.
IAbstract

@IAbstract La question ne demande pas de supprimer le complément git de VS.
Gene S

@Henry Wilson Il ne semble pas que votre commentaire soit pertinent par rapport à la question. Ma réponse supprime la liaison / le mappage de Visual Studio. Cela fonctionne pour moi et fonctionne clairement pour les autres.
Gene S

1
C'est tout à fait pertinent par rapport à la question! L'OP n'indique pas s'il utilise ou non git pour le contrôle de code source, il veut simplement savoir comment se débarrasser de la liaison dans VS. La suppression du dossier .git et des fichiers .gitattributes / .gitignore suppose que vous n'utilisez pas réellement git pour le contrôle de code source, ce que beaucoup de gens pourraient bien être.
Henry Wilson

9

L'extension NoGit masque simplement le problème, en désactivant le fournisseur de contrôle de source Git chaque fois que la solution est chargée. Il effectue ce travail pour chaque solution chargée dans Visual Studio.

J'ai résolu en ouvrant un autre projet et en supprimant le référentiel Git des référentiels Git locaux, comme Chris C. l'a suggéré (Affichage> Team Explorer> Dépôts Git locaux, sélectionnez le référentiel à supprimer et cliquez sur Supprimer). Ensuite, j'ai supprimé le dossier .git du chemin du projet, comme suggéré par helix. Rouvert le projet et finalement l'intégration Git a disparu!


La suppression du dossier .git et de quelques fichiers .git du dossier Solutions a résolu le problème pour moi. Merci a tous!
PTansey

8
  1. Accédez au répertoire de votre projet
  2. Cliquez sur le dossier Menu-> Outils-> Options des dossiers
  3. Sélectionnez l' onglet Affichage
  4. Sélectionnez Sous Fichier et Dossiers, Afficher les fichiers, dossiers et lecteurs cachés
  5. Cliquez OK
  6. Supprimer le .gitdossier
  7. Fermez et rouvrez votre Visual Studio
  8. Ouvrez votre projet
  9. Terminé. :)

Codage sûr.


1
Ce n'est PAS ce que nous essayons de faire. Nous voulons git, nous ne voulons simplement pas l'intégration de VS avec git.
Gerry le

7

C'est si simple,

  1. assurez-vous que vous n'êtes pas connecté au projet que vous souhaitez supprimer

  2. le projet est fermé dans l'explorateur de solutions

    C'est tout, si vous réessayez maintenant, l'action de suppression sera activée


Merci. C'est la plus simple et doit être choisie comme réponse.
Ronald Ramos

Fonctionne, si vous voyez que l'option de suppression continue de désactiver, de fermer et d'ouvrir à nouveau Visual Studio. Je l'ai utilisé avec VS 2017
freedeveloper

5

J'ai passé du temps à supprimer l'intégration git de mon projet Visual Studio 2015. chaque fois que je supprime git de Visual Studio, et ajoute TFS en suivant ceci - Tools -> option -> sourceControl -> plugin selection -> Visual Studio Team foundation server, il revenait.

Ma solution était -

faire l'emplacement physique de mon projet - Afficher tous les fichiers cachés. vous pouvez le faire en affichant les fichiers cachés et l'option de dossier de Windows. puis je me rends compte, il y avait un dossier caché appelé .git quelque chose. J'ai gardé une sauvegarde complète de mon dossier de projet et aussi du dossier git toute autre sauvegarde nécessaire (j'ai gardé cette sauvegarde en cas d'interruption de mon projet, afin de pouvoir revenir à la condition précédente).

puis j'ai supprimé le dossier .git caché et tous les autres fichiers liés .git.

alors j'essaye Outils -> option -> sourceControl -> sélection de plugin -> serveur de fondation Visual Studio Team. puis j'ouvre le projet par visual studio - Fichier -> ouvrir -> projet / solution ..

après cela, j'ai remarqué dans l'explorateur de solutions, en cliquant avec le bouton droit sur le nom de la solution, je vois l'option "Contrôle de source", et aussi dans le projet - un clic droit, je vois "Ajouter une solution au contrôle de source" .. et cette fois, il n'a pas ajouté de solution à git. .

il est également bon de supprimer toute connexion git de votre exploiteur de contrôle de source..s'il y en a ..

donc l'essentiel est de s'assurer qu'il n'y a pas de fichier git caché dans votre fichier projet et dans toute autre extension git .. j'espère que cela sera utile à quelqu'un ..


2

En plus de la réponse de Juliano Nunes Silva Oliveira , le moyen le plus simple et le plus propre sans pirater le regedit, en supprimant les dossiers .git cachés ou en modifiant vos paramètres VS15, consiste à se connecter à un référentiel différent. Une fois connecté, vous voyez le texte de l'autre référentiel en gras, puis sélectionnez votre référentiel local Git . Maintenant vous voyez que le

Retirer

L'élément de menu est activé afin que vous puissiez supprimer votre référentiel local Git .

C'est le même type de comportement lorsqu'il s'agit de branches lors de l'utilisation de Git avec Visual Studio 2015. Vous devez sélectionner une branche différente avant de pouvoir supprimer la branche que vous souhaitez supprimer.

Pour ceux qui ont besoin de visualisation pour mieux le comprendre. voir l'image du lien: comment c'est fait

Bon codage


1

Il recherche simplement la présence du répertoire .git dans le dossier solution. Supprimez ce dossier, éventuellement masqué, et Visual Studio ne le considérera plus comme un projet git.


C'est parce que si vous le supprimez, ce n'est plus un projet git . Vous avez effectivement détruit votre gestion des versions. Si c'est ce que vous voulez faire, très bien.
gliljas le

C'est exactement ce que je voulais faire. Visual Studio a décidé d'expirer ma licence de 30 jours car je l'ajoutais au contrôle de code source. J'ai laissé mon projet dans un état déroutant et je n'ai pas pu suivre la documentation.
Nathan Goings

1

Connectez-vous à un référentiel différent (j'ai essayé avec un référentiel TFS), puis allez dans Gérer les connexions, faites un clic droit sur le référentiel Git et vous pourrez peut-être le supprimer.

Mais vous devez toujours supprimer manuellement le dossier et les fichiers .git du chemin de votre projet avant de rouvrir la solution.


1

@Matthew Kraus S'il vous plaît Cliquez sur les outils de la barre de menu puis cliquez sur Options, Trouvez le contrôle de source puis sélectionnez "Aucun" dans la liste déroulante et cliquez sur OK. Supprimez le dossier .git caché de votre dossier de projet. Rouvrez votre projet. entrez la description de l'image ici


0

Allez dans Control Panel\User Accounts\Credential Manageret sélectionnez Windows Credentialpuis supprimez le compte de git.



0

Vous ne pouvez pas supprimer le référentiel git local lorsqu'il est déjà connecté. fermez donc la solution, ouvrez une autre solution, puis supprimez le référentiel git local. n'oubliez pas de supprimer le dossier caché .git fonctionne pour moi

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.