Points Essentiels à Retenir
- L’élimination des branches est une action courante dans un flux de travail Git typique.
- Pour supprimer une branche locale, utilisez la commande « git branch -d [nom_de_la_branche] », mais soyez vigilant concernant les modifications non fusionnées.
- Divers outils tels que GitHub Desktop, GitKraken, Tower et Bitbucket offrent différentes méthodes pour supprimer les branches. Familiarisez-vous avec le processus propre à chaque outil.
Les branches Git sont si légères qu’il est facile d’en créer de nouvelles selon vos besoins. Cependant, il est également facile de se retrouver avec des branches inutilisées. Alors, comment gérer la suppression d’une branche ?
Pourquoi supprimer une branche ?
Si vous êtes en phase d’apprentissage de la structuration d’un projet avec Git, il est probable que vous créiez une branche et réalisiez ensuite qu’elle n’est plus nécessaire. C’est tout à fait normal, car la création de branches est une opération légère, rapide et économe en espace disque.
De nombreux flux de travail de développement Git encouragent l’utilisation de branches, même pour des tâches minimes. Par exemple, une pratique courante consiste à créer une branche dédiée pour chaque correction de bug.
La suppression de branches devrait être une pratique aussi régulière que leur création dans votre routine quotidienne.
Exemple de Dépôt avec Branches
Les exemples ci-dessous se réfèrent à un dépôt fictif avec la structure suivante :
Le dépôt comporte deux branches : `main` et `dev`. Ces branches locales sont toutes les deux des branches de suivi, avec une branche amont équivalente sur un serveur distant (appelé `origin` dans notre cas).
Il est aisé de perdre le fil des branches, assurez-vous donc de connaître la méthode pour les lister en ligne de commande ou de les visualiser dans votre client préféré.
Supprimer une Branche via la Ligne de Commande
La syntaxe de base pour supprimer une branche est la suivante :
git branch (-d | -D) [-r] <nom_de_la_branche>...
Comment Supprimer une Branche Locale
La commande de base pour supprimer une branche locale est la suivante, à condition que tous ses changements aient été fusionnés :
git branch -d dev
Si tout se déroule correctement, un message de confirmation apparaît :
Il n’est pas possible de supprimer la branche active. Si vous tentez de le faire, un message d’erreur semblable à celui-ci s’affichera :
Supprimer une branche locale contenant des modifications non fusionnées et non poussées entraînera la perte de ces changements. Par conséquent, Git refuse la suppression par défaut. Dans cet exemple, la branche `dev` contient des changements non fusionnés et non envoyés sur la branche distante :
Comme indiqué dans le message d’erreur, vous pouvez forcer la suppression avec l’option `-D`.
Il est possible de supprimer une branche de suivi locale si sa branche distante correspondante est à jour, même si elle n’est pas fusionnée. Git affichera un avertissement pour vous informer de la situation :
Comment Supprimer une Branche Distante
La suppression d’une branche distante est différente. La commande `git push` avec l’option `-d` est utilisée. Vous devez ensuite spécifier le nom du dépôt distant (souvent `origin`) et le nom de la branche :
Suppression des Branches Locales et Distantes avec GitHub Desktop
Contrairement à l’interface en ligne de commande de Git, l’application GitHub Desktop vous permet uniquement de supprimer la branche active. Pour ce faire, passez par le menu « Branche », sélectionnez « Supprimer » et confirmez l’action :
GitHub Desktop ne vous permettra pas de supprimer la branche principale (par exemple, `main`), même si Git le permet. Si la branche principale est active, l’application désactive l’option de menu.
Si la branche correspond aussi à une branche distante, GitHub Desktop vous propose de la supprimer également de la branche distante :
Supprimer des Branches avec GitKraken
GitKraken affiche les branches locales et distantes de votre dépôt dans la barre latérale de gauche. Il faut les supprimer séparément.
Placez votre curseur sur le nom de la branche concernée et cliquez sur le menu « Actions de la branche » (trois points verticaux). Dans ce menu, choisissez « Supprimer
Un message de confirmation vous indiquera qu’il s’agit d’une action irréversible. Vous pouvez confirmer votre choix avec le bouton « Supprimer » :
Comme avec la ligne de commande Git, vous devez d’abord passer sur une autre branche avant de pouvoir supprimer celle que vous souhaitez. Dans le cas contraire, un message d’erreur s’affichera :
Suppression des Branches Locales et Distantes avec Tower
La suppression de branches avec Tower est très similaire à GitKraken. L’application affiche les branches locales et distantes dans un panneau sur la gauche. Faites un clic droit sur une branche et choisissez l’option « Supprimer » dans le menu contextuel :
Une différence notable est que vous pouvez choisir de supprimer la branche distante en même temps que sa branche locale au moment de la confirmation :
Supprimer une Branche sur GitHub
GitHub agit en tant que source distante. Les branches qui s’y trouvent sont donc des branches distantes. Si vous supprimez une branche depuis le site web de GitHub, il faudra supprimer la branche locale correspondante en utilisant une des autres méthodes présentées ici.
Tout comme avec l’application GitHub Desktop, le site web GitHub ne vous permet pas de supprimer la branche par défaut. Si vous essayez, un message d’erreur s’affichera :
Cependant, la suppression de toute autre branche est facile. Sur la page « Code » du dépôt, cliquez sur le lien « Branches », repérez la branche que vous voulez supprimer, puis cliquez sur l’icône « Supprimer la branche » qui ressemble à une poubelle :
Il n’y a pas de vérification des changements non fusionnés, donc GitHub supprimera la branche immédiatement. Étant donné qu’il s’agit d’une branche distante, cela est généralement logique.
Après la suppression, vous verrez un bouton pour restaurer la branche. C’est une fonction d’annulation utile au cas où vous auriez cliqué sur l’icône de suppression par erreur. Cependant, ne vous y fiez pas trop, car cette option disparaît dès que vous actualisez la page !
Suppression des Branches Locales et Distantes sur Bitbucket
Bitbucket, à l’instar de GitHub, ne permet pas de supprimer la branche par défaut. Bitbucket la nomme « branche principale » dans les paramètres du dépôt. Vous pouvez supprimer toute autre branche depuis l’onglet « Branches », en passant par le menu « Actions » correspondant :
Vous avez également la possibilité de supprimer plusieurs branches en même temps si vous réalisez un nettoyage important :
La Suppression de Branches Fait Partie d’un Flux de Travail Git Standard
Les branches Git peuvent complexifier votre flux de travail, en particulier avec des branches locales, distantes et de suivi. Cependant, pour un développement quotidien classique, la création et la suppression régulières de branches locales sont courantes. C’est un aspect essentiel d’un flux de travail Git auquel vous devez vous habituer.
Si vous avez des difficultés à vous souvenir de la procédure exacte pour supprimer une branche, configurez des alias pour simplifier le processus.