139 votes

Visual Studio Code - supprimer les branches supprimées sur GitHub qui apparaissent toujours dans VS Code?

Dans VSCode, après avoir effectué une demande de fusion et supprimé la branche sur GitHub, cette branche apparaît toujours dans Visual Studio Code. Si je sélectionne la branche, une erreur est affichée, comme prévu.

Comment puis-je supprimer ces branches supprimées de VSCode - puis-je le faire automatiquement ?

4 votes

Pour suivre (3 ans plus tard), la réponse correcte pour moi est une combinaison de git fetch --prune pour mettre à jour/supprimer les références des branches distantes, et git branch -d pour supprimer la branche locale (-D pour forcer). Redémarrez VSCode rafraîchit la palette

0 votes

Pas besoin de redémarrer VS Code, il suffit de cliquer sur le bouton Actualiser dans le menu Contrôle de source.

0 votes

J'ai en fait construit une fonction pour gérer cela et ai rédigé un petit article à ce sujet. Lien

227voto

davidhu2000 Points 3568

Apparemment, cette fonctionnalité est intentionnelle. J'ai découvert qu'une manière correcte de supprimer toutes les branches distantes qui ont été supprimées de Github est d'exécuter la commande suivante.

git fetch --prune

Ensuite, redémarrez visual studio pour supprimer les branches de la palette de commandes

11 votes

@Brian, cela ne supprime pas vos branches locales. Cette commande supprime l'élément origin/nom_de_la_branche du menu de commutation rapide de git sur VSCode. Par exemple, si vous avez une branche locale test et que vous la poussez sur Github, vous aurez deux branches test et origin/test dans le menu des branches git, le prune supprime seulement la branche origin/test, pas la branche test.

1 votes

@Brian J'ai trouvé que cela effacerait les branches supprimées à distance après un redémarrage de VS Code

4 votes

Cette commande ne fonctionne pas. Je vois toujours toutes les branches dans la liste à la fois lorsque je fais la commande git branch ou lorsque je clique sur le nom de la branche pour voir un menu déroulant avec toutes les branches disponibles.

92voto

Les branches locales peuvent être supprimées de Visual Studio Code en ouvrant le Presse-papiers de commandes (Ctrl-Shift-P) puis en sélectionnant Git: Supprimer la branche..., vous pouvez ensuite supprimer la branche locale en sélectionnant celle appropriée dans la liste.

2 votes

Je ne l'ai pas testé, mais il semble ne montrer que les branches locales, donc il devrait fonctionner comme décrit.

2 votes

@TylerBell Comme il l'a déjà dit, c'est la méthode pour supprimer la branche locale, pas la branche distante.

2 votes

Cela aurait dû être la réponse. Je ne sais pas pourquoi j'étais si stupide de ne pas le savoir moi-même. Merci @matthew-disney-cook

19voto

Krzysztof Cieslak Points 673

Les branches supprimées de GitHub sont en fait.. simplement supprimées de GitHub. Vous avez toujours une copie locale de la branche sur votre machine. Pour supprimer la branche locale, exécutez git branch -d la_branche_locale. Il n'y a pas de commande dans VS Code pour le faire, mais vous pouvez ouvrir un terminal dans VSCode en utilisant la commande View: Toggle Integrated Terminal et exécuter la commande à partir de là.

Pour plus d'informations sur la gestion des branches, veuillez consulter la documentation git - https://git-scm.com/book/be/v2/Git-Branching-Branch-Management

0 votes

Hey merci. Oui, j'utilise les commandes git actuellement... mais j'espérais que la synchronisation git de vscode verrait que le remote les avait supprimées - ou les mettrait en surbrillance. J'imagine que non :-)

0 votes

Assez bête qu'ils ne prennent pas en charge les commandes git natives dans leur ligne de commande git. Mal conçu.

0 votes

Aussi en attente d'une extension ici :)

9voto

Tout ce que vous avez à faire est d'exécuter cette commande :

git remote prune origin

Quelque chose en plus que vous pouvez faire, parce que c'est parfois gênant d'ouvrir un terminal juste pour cela.. vous pouvez ajouter une tâche dans vscode.

Pour ce faire, veuillez suivre ces étapes :

  1. Dans VSCode Affichage > Palette de commandes (cmd/ctrl + Maj + P)
  2. tapez Configurer la tâche
  3. Sélectionnez Créer un fichier tasks.json à partir du modèle et un nouveau fichier sera créé sous le dossier .vscode.
  4. À l'intérieur du tableau des tâches, ajoutez ceci :

{ "label": "Git Prune", "type": "shell", "command": "git remote prune origin", "problemMatcher": [] }

Comment l'utiliser :

  1. Ouvrez la Palette de commandes
  2. Tapez Exécuter la tâche et sélectionnez-la
  3. Sélectionnez Git Prune

Référence :

  1. Git prune

0 votes

Savez-vous si git remote prune origin diffère de la réponse acceptée de git fetch --prune ? Les détails de l'exécution de la tâche sont excellents, merci de les avoir postés

0 votes

@Drenai Non, ils sont identiques. Mais pour une réponse complète, consultez ici

4voto

davidhu2000 Points 3568

J'ai trouvé une solution pour corriger cela. Vous devez donc supprimer le remote qui fait le lien vers le dépôt Github, puis ajouter à nouveau le remote.

Toutes les branches supprimées de Github ne s'afficheront plus dans vscode. En supposant que origin est le nom du dépôt distant.

git remote remove origin

Ensuite

git remote add origin git@github.com:nom-utilisateur/nom-du-repo.git

1 votes

Pas que je sache. C'est la seule méthode que j'ai trouvée qui supprimera les branches distantes qui n'existent plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X