Original article: Git Delete Branch – How to Remove a Local or Remote Branch
Git est un système de contrôle de version populaire et un outil essentiel dans la boîte à outils d'un développeur web.
Les branches sont une partie puissante et intégrale du travail avec Git.
Dans cet article, vous apprendrez les bases de la suppression des branches locales et distantes dans Git.
Qu'est-ce qu'une branche dans Git ?
Une branche est un pointeur vers un commit.
Les branches Git sont un fragment d'un projet et de ses modifications, à partir d'un moment précis.
Lorsque l'on travaille sur un grand projet, il y a le dépôt principal avec tout le code, souvent appelé main
ou master
.
Les branches vous permettent de créer de nouvelles versions indépendantes du projet principal original. Vous pouvez créer une branche pour la modifier afin d'y apporter des changements, d'ajouter une nouvelle fonctionnalité ou d'écrire un test lorsque vous essayez de corriger un bogue. Et une nouvelle branche vous permet de faire cela sans affecter le code principal de quelque manière que ce soit.
Pour résumer, les branches vous permettent d'apporter des modifications à la base de code sans affecter le code principal jusqu'à ce que vous soyez absolument prêt à mettre en œuvre ces modifications.
Cela vous aide à garder la base de code propre et organisée.
Pourquoi supprimer des branches dans Git ?
Vous avez donc créé une branche pour contenir le code d'une modification que vous vouliez apporter à votre projet.
Vous avez ensuite incorporé cette modification ou cette nouvelle fonctionnalité dans la version originale du projet.
Cela signifie que vous n'avez plus besoin de conserver et d'utiliser cette branche. C'est donc une bonne pratique courante de la supprimer pour ne pas encombrer votre code.
Comment supprimer une branche locale dans Git
Les branches locales sont des branches sur votre machine locale et n'affectent pas les branches distantes.
La commande pour supprimer une branche locale dans Git est :
git branch -d nom_branche_locale
git branch
est la commande permettant de supprimer une branche localement.-d
est un drapeau, une option de la commande, et c'est un alias de--delete
. Il indique que vous voulez supprimer quelque chose, comme son nom l'indique.. -nom_branche_locale
est le nom de la branche que vous voulez supprimer.
Voyons cela un peu plus en détail à l'aide d'un exemple.
Pour lister toutes les branches locales, vous utilisez la commande suivante :
git branch
J'ai deux branches, master
et test2
. Je suis actuellement sur la branche test2
comme le montre le (*)
:

Je veux supprimer la branche test2
, mais il n'est pas possible de supprimer une branche dans laquelle vous êtes actuellement et que vous visualisez.
Si vous essayez de le faire, vous obtiendrez une erreur qui ressemblera à ceci :

Donc avant de supprimer une branche locale, assurez-vous de passer à une autre branche que vous ne voulez PAS supprimer, avec la commande git checkout
:
git checkout nom_branche
#où nom_branche est le nom de la branche vers laquelle vous voulez vous déplacer
#dans mon cas, l'autre branche que j'ai est master, donc je ferais.. :
#git checkout master
Voici le résultat :

Maintenant je peux supprimer la branche :

La commande de suppression d'une branche locale que nous venons d'utiliser ne fonctionne pas dans tous les cas.
Si la branche contient des changements non fusionnés et des commits non poussés, l'option -d
ne permettra pas de supprimer la branche locale.
En effet, les commits ne sont pas vus par les autres branches et Git vous protège contre la perte accidentelle de données de commit.
Si vous essayez de faire cela, Git vous montrera une erreur :

Comme le suggère l'erreur, vous devez utiliser l'option -D
à la place :
git branch -D nom_branche_locale
Le drapeau -D
, avec un D majuscule (qui est un alias pour -- delete --force
), supprime de force la branche locale, sans tenir compte de son statut de fusion.
Mais notez que vous devez utiliser cette commande avec prudence, car il n'y a pas d'invite vous demandant de confirmer vos actions.
Ne l'utilisez que lorsque vous êtes absolument sûr de vouloir supprimer une branche locale.
Si vous ne l'avez pas fusionnée dans une autre branche locale ou poussée vers une branche distante de la base de code, vous risquez de perdre toutes les modifications apportées.

Comment supprimer une branche distante dans Git
Les branches distantes sont distinctes des branches locales.
Il s'agit de dépôts hébergés sur un serveur distant et auxquels on peut accéder à partir de là. Ceci est en comparaison avec les branches locales, qui sont des dépôts sur votre système local.
La commande pour supprimer une branche distante est :
git push nom_repo_distant -d nom_branche_distante
- Au lieu d'utiliser la commande
git branch
que vous utilisez pour les branches locales, vous pouvez supprimer une branche distante avec la commandegit push
. - Ensuite, vous spécifiez le nom du serveur distant, qui dans la plupart des cas est
origin
. -d
est l'indicateur de suppression, un alias de--delete
.nom_branche_distante
est la branche distante que vous voulez supprimer.
Voyons maintenant un exemple de la façon de procéder pour supprimer une branche distante.
Pour visualiser toutes les branches distantes, vous utilisez cette commande :
git branch -a
L'option -a
(un alias de --all
) montre toutes les branches - locales et distantes.

J'ai deux branches locales appelées master
et test
et deux branches distantes origin/master
et origin/test
.
Le -r
, un alias pour --remotes
, ne montre que les dépôts distants.

Je veux supprimer la branche distante origin/test
, donc j'utilise la commande :
git push origin -d test
Résultat :

Ceci a supprimé la branche test
dans le dépôt distant nommé origin.
Le répertoire distant origin/test
n'existe plus :

Conclusion
Vous savez maintenant comment supprimer les branches locales et distantes dans Git.
Merci de votre lecture et bon apprentissage !