Comment supprimer une branche dans Git localement et à distance

Points clés à retenir

  • La suppression de branches est une partie importante d’un workflow Git typique.
  • Vous pouvez supprimer une branche locale en utilisant la commande « git branch -d [branchname]», mais soyez prudent avec les changements non fusionnés.
  • Différents outils comme GitHub Desktop, GitKraken, Tower et Bitbucket ont leurs propres méthodes pour supprimer des branches, alors familiarisez-vous avec le processus spécifique à chaque outil.

Les branches de Git sont si légères qu’il est facile de les créer quand vous en avez besoin. Mais il est également facile de se retrouver avec des branches restantes dont vous n’avez plus besoin. Alors, qu’implique la suppression d’une branche ?

Pourquoi supprimer une branche ?

Premièrement, si vous êtes encore en train d’apprendre à structurer un projet à l’aide de branches git, il y a de fortes chances que vous créiez une branche et que vous décidiez ensuite que vous n’en aviez pas besoin. C’est très bien puisque le branchement est une opération légère ; c’est très rapide et utilise efficacement l’espace disque.

En conséquence, de nombreux workflows de développement Git encouragent le branchement, même pour des tâches très petites ou courtes. Par exemple, une stratégie courante consiste à créer une branche distincte pour chaque correction de bogue.

La suppression de branches devrait faire autant partie de votre flux de travail quotidien que leur création.

Un exemple de référentiel avec des branches

Les exemples ci-dessous font référence à un exemple de référentiel avec la structure suivante :

Notez que le dépôt a deux branches : main et dev. Chacune de ces branches locales est une branche de suivi, avec une branche amont correspondante sur un serveur distant (origine).

Il est facile de perdre la trace des branches, alors assurez-vous de savoir comment répertorier les branches git à partir de la ligne de commande ou les afficher dans votre client préféré.

Supprimer une branche à l’aide de la ligne de commande

La syntaxe de commande de base pour supprimer une branche est la suivante :

 git branch (-d | -D) [-r] <branchname>... 

Comment supprimer une succursale locale

La forme la plus simple de la commande supprime une branche locale, à condition que toutes ses modifications aient été fusionnées :

 git branch -d dev 

Lorsque tout se passe bien, vous verrez un message de confirmation :

Vous ne pouvez pas supprimer la branche actuellement active ; si vous essayez de le faire, vous recevrez un message comme celui-ci :

Si vous supprimez une branche locale avec des modifications non fusionnées et non poussées, vous perdrez ces modifications. Par conséquent, git refusera de supprimer une telle branche par défaut. Dans cet exemple, dev a des modifications non fusionnées qui n’ont pas été transmises à la branche distante :

Comme l’indique le message d’erreur, vous pouvez forcer la suppression avec l’indicateur -D.

Vous pouvez supprimer une branche de suivi locale si sa branche distante correspondante est à jour, même si elle n’est pas fusionnée. Git affichera toujours un avertissement, afin que vous soyez au courant de ce qui s’est passé :

Comment supprimer une branche distante

Supprimer une branche distante est très différent. Vous utiliserez la commande git push avec l’indicateur -d pour supprimer. Après cela, fournissez le nom de la télécommande (souvent d’origine) et le nom de la branche :

Suppression de branches locales et distantes avec GitHub Desktop

Contrairement au programme git en ligne de commande, L’application de bureau de GitHub vous permettra uniquement de supprimer la branche active. Vous pouvez réaliser cette action via le menu Branche, en sélectionnant l’option Supprimer et en la confirmant :

GitHub Desktop ne vous permettra pas de supprimer la branche par défaut, par exemple main, même si git lui-même le prend en charge. Si la branche par défaut est celle actuellement active, l’application désactive l’action du menu.

Si la branche représente également une branche distante, GitHub Desktop offre également la possibilité de la supprimer de la branche distante :

Supprimer des branches à l’aide de GitKraken

GitKraken affiche les branches locales et distantes de votre référentiel dans la barre latérale de gauche. Vous devez supprimer chacun séparément.

Passez la souris sur le nom de la branche appropriée et cliquez sur le menu Actions de branche qui ressemble à trois points verticaux. Dans le menu, sélectionnez Supprimer  :

Vous verrez un message de confirmation vous informant qu’il s’agit d’une opération destructrice. Vous pouvez confirmer que vous souhaitez continuer avec le bouton Supprimer :

Reflétant le comportement par défaut du programme de ligne de commande git, vous devez d’abord basculer vers une branche autre que celle que vous supprimez. Sinon, vous verrez un message d’erreur :

Suppression de branches locales et distantes à l’aide de Tower

Supprimer une branche avec La tour est très similaire à la suppression d’une branche avec GitKraken. L’application affiche les succursales locales et distantes dans un panneau sur le côté gauche. Faites un clic droit sur n’importe quelle branche et sélectionnez l’option Supprimer dans le menu contextuel :

Une différence clé est que vous pouvez supprimer une branche distante, ainsi que sa branche locale, lors de la confirmation :

Supprimer une branche sur GitHub

GitHub agit uniquement comme une source distante, donc les branches y sont distantes par défaut. Si vous supprimez une branche à l’aide du site Web GitHub, vous devrez supprimer la branche locale correspondante en utilisant l’une des autres méthodes présentées ici.

Comme pour l’application GitHub Desktop, le site Web GitHub ne vous permettra pas de supprimer la branche par défaut. Si vous essayez, vous verrez un message d’erreur :

Cependant, supprimer toute autre branche est simple. Depuis la page Code du référentiel, cliquez sur le lien branches, localisez la branche à supprimer, puis cliquez sur l’icône Supprimer la branche, qui ressemble à une poubelle :

Sachez qu’il n’y a aucune vérification des modifications non fusionnées, donc GitHub supprimera simplement la branche immédiatement. Cependant, comme il s’agira toujours d’une branche distante, ce comportement devrait avoir du sens.

Notez qu’après la suppression, vous verrez un bouton pour restaurer la branche. Cependant, il s’agit simplement d’une fonction d’annulation utile, juste au cas où vous cliqueriez accidentellement sur l’icône de suppression. Ne vous y fiez pas, car dès que vous actualisez ou quittez la page, vous perdrez cette option !

Suppression de branches locales et distantes sur Bitbucket

Bitbucket, comme GitHub, ne vous permettra pas de supprimer la branche par défaut. Bitbucket appelle cela la branche principale dans les paramètres du référentiel. Vous pouvez supprimer toute autre branche répertoriée dans l’onglet Branches, via le menu Actions correspondant :

Vous pouvez également supprimer plusieurs branches à la fois si vous effectuez une opération de nettoyage importante :

La suppression de branches fait partie d’un flux de travail Git typique

Les branches Git peuvent compliquer votre flux de travail, en particulier celui avec des branches locales, distantes et de suivi. Mais pour un développement simple au quotidien, vous risquez de créer et de supprimer des branches locales à tout moment. Il s’agit d’un aspect essentiel d’un workflow git typique auquel vous devez vous habituer.

Si vous avez du mal à vous rappeler exactement comment supprimer une branche, envisagez de configurer des alias pour supprimer des branches et simplement le processus.