153 votes

Comment supprimer les noms de branches supprimées de l'autocomplétion ?

J'ai utilisé git branch -d myBranch pour supprimer une branche. Cependant, lorsque je suis sur master et que j'essaye de vérifier une nouvelle branche avec git checkout , myBranch apparaît toujours dans la tabulation automatique.

Comment supprimer le nom myBranch de la complétion automatique des onglets pour git checkout ?

242voto

ericsoco Points 1948

git fetch --prune --all

Je poste cette réponse en tant que telle puisqu'il s'agit d'un correctif d'une ligne, mais si vous votez, assurez-vous de voter pour La réponse de twalberg .

la suggestion de twalberg de git branch -a m'a mis sur la bonne piste ; mon collègue a suggéré git fetch --prune --all pour élaguer toutes les branches mortes de tous les remotes, ce qui est utile lorsque l'on travaille avec beaucoup de devs avec beaucoup de forks.

99voto

twalberg Points 19804

Une raison possible pour cela est que, si une branche distante (par ex. origin/myBranch ) existe toujours, alors git checkout myBranch réussira en tant qu'alternative à git checkout -b myBranch origin/myBranch . Ceci est prévu comme une commodité pour le cas commun de l'extraction d'une branche distante pour la première fois, créant une branche locale de suivi nommée de manière identique.

Il y a aussi d'autres possibilités, en fonction de ce que vous utilisez exactement pour l'achèvement, mais c'est l'une des premières choses que je vérifierais. Si vous exécutez git branch -a et il existe un origin/myBranch énumérés (ou un pour une télécommande autre que origin si vous en avez un), alors c'est probablement le coupable.

0voto

rocksteady Points 106

Selon votre configuration, il y a une autre source de ce qui pourrait ressembler à des branches anciennes ou supprimées - votre git-completion peut aussi suggérer tags ainsi que des branches.

J'ai été trompé par cela récemment - notre pipeline CI/CD marque toutes nos constructions, et même si certaines branches étaient libérées et/ou supprimées depuis des années, les marques persistaient. Nettoyer les anciens tags à distance était la solution ici ( il existe un guide ici ).

(J'ai répondu à cette ici aussi - Je ne sais pas si cela compte comme un doublon car c'est sur StackExchange... ?)

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