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 configremote.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.
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
Visual Studio 2015 et 2017
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.
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
):
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é)grep -e '\['
devrait faire l'affaire)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.