web-dev-qa-db-fra.com

Comment supprimer les branches Git supprimées de Visual Studio 2015

Visual Studio continue d'afficher toutes les branches que j'ai extraites, même après la suppression de cette branche (et je ne l'ai pas comme branche sélectionnée).

  • "git fetch --all --Prune" ne les supprime pas. git config
  • "remote.Origin.Prune true" ( suggéré ici ) ne les supprime pas.

Comment puis-je supprimer les branches supprimées de mon système?

Mise à jour: Je veux une approche qui détermine quelles branches ont disparu et les supprime. Si nous les sélectionnons spécifiquement, tôt ou tard, quelqu'un supprimera une branche utilisée par erreur.

6
David Thielen

Prune concerne la suppression des références de suivi à distance qui n'existent plus sur la télécommande.

Donc, si la branche existe toujours du côté distant, elle ne sera pas supprimée localement.

Si la branche est supprimée localement (avec Visual Studio) , son instance de suivi distante sera toujours recréée lors du prochain envoi.

Vous devez vous assurer que la branche est également supprimée du côté distant :

git Push Origin --delete abranch
4
VonC

Visual Studio 2015 et 2017

  1. Ouvrez Team Explorer et accédez à la vue Branches.
  2. Localisez la branche que vous souhaitez supprimer. Assurez-vous que vous n'avez pas extrait De cette branche. Vous ne pouvez pas supprimer la branche dans laquelle vous travaillez .
  3. Cliquez avec le bouton droit sur le nom de la branche et sélectionnez Supprimer. Si vous avez Des modifications non publiées, Visual Studio vous demandera et s'assurera que vous souhaitez que Supprime la branche pour ne pas risquer de perdre du travail  Image
3
Rohit Poudel

J'avais des branches distantes qui ne disparaîtraient pas, même après leur suppression sur le serveur. Cette astuce sur la configuration de "Prune branches distantes" a fonctionné pour moi. Je l'ai trouvé ici .

Accédez à Team Explorer, puis cliquez sur le bouton Accueil. Ensuite, cliquez sur Paramètres> Référentiel Paramètres et définissez le menu déroulant "Élaguer les branches distantes lors de la récupération" sur Vrai. N'oubliez pas de cliquer sur le bouton "Mettre à jour" pour enregistrer vos modifications.

Après avoir changé le réglage, j'ai fait une recherche sur l'une des branches supprimées et toutes les branches supprimées ont disparu.

2
Homer

Presque toutes les solutions de base permettant de supprimer les branches "supprimées" de la télécommande sont également susceptibles de supprimer les branches locales qui n'ont pas encore été déplacées, car elles n'auront pas non plus de référence à distance.

Pour éviter cette mise en garde, vous pouvez écrire un script Shell dans (après un git fetch --Prune):

  1. Obtenir la liste des branches avec leurs références distantes avec git branch -vv (éventuellement l'indicateur --format ajouté à git-branch dans 2.13.x permettrait un format plus facile à analyser, mais je n'ai pas encore utilisé cette fonctionnalité)
  2. Rechercher dans cette liste les branches avec une télécommande (diriger vers grep -e '\[' devrait faire l'affaire)
  3. Analyser les noms de branches avec un travail de grep sophistiqué
  4. Parcourez les télécommandes et vérifiez la référence à distance
  5. Supprimer la branche si vous ne trouvez pas la télécommande

Si vous souhaitez une solution plus simple et totalement sécurisée par le code, vous pouvez supprimer facilement et en toute sécurité les branches qui ont été (entièrement) fusionnées dans une branche spécifique à l’aide de cette commande:

git branch -D `git branch --merged Origin/master | grep "^  " | xargs`

Substituer la branche appropriée si nécessaire. Le grep l'empêche d'essayer de supprimer la branche actuellement extraite.

Notez que ce will supprime les références de branches locales, même si les télécommandes n’ont pas été supprimées, mais que les validations sont sûres de toute façon et que si vous avez à nouveau besoin de ces branches, vous pouvez toujours les extraire.

0
LightBender