Original article: How to Delete a Git Branch Both Locally and Remotely
Avec Git, supprimer une branche n'a rien de compliqué. Dans cet article, nous allons voir comment supprimer une branche locale et distante.
Version courte
// supprime une branche locale
git branch -d ma-branche
// supprime une branche distante
git push origin --delete ma-branche
Quand supprimer une branche
Plusieurs branches peuvent co-exister dans un même dépôt Git, ce qui permet de travailler simultanément sur autant de fonctionnalités et de correctifs tout en assurant que le nouveau code est isolé du code principal.
Un dépôt aura souvent une branche principale appelée main
pour le code principal, et d'autres branches créées par les développeurs pour leur permettre de travailler sur ces fonctionnalités.
Une fois le travail accompli, on recommande souvent de supprimer la branche associée.
Supprimer une branche locale
Il n'est pas possible de supprimer une branche active, on doit donc passer au préalable sur une branche non destinée à être supprimée, de cette manière par exemple :
git checkout main
On peut alors supprimer la branche en question en utilisant cette forme de commande :
git branch -d <branche>
.
Par exemple git branch -d fix/authentication
L'option -d
ordonne la suppression de la branche si celle-ci a été envoyée et ses contributions fusionnées avec la branche distante avec laquelle elle est associée, c'est-à-dire si le travail est considéré comme terminé. On utilise plutôt -D
pour forcer la suppression de la branche, quel que soit son statut.
La branche locale est maintenant supprimée.
Supprimer une branche distante
Voici la forme de la commande pour supprimer une branche distante : git push <dépôt> --delete <branche>
.
Par exemple : git push origin --delete fix/authentication
C'est aussi simple que ça. Il existe même une version plus courte de cette commande : git push <dépôt> :<branche>
Toujours avec cet exemple : git push origin :fix/authentication
L'erreur suivante peut survenir :
error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'
Elle signifie que la branche distante a déjà été supprimée (peut-être par un autre développeur). Dans ce cas, on peut synchroniser la branche par cette commande :
git fetch -p
L'option -p
pour prune signifie "élaguer". En continuant l'analogie végétale, cela veut dire que les branches qui n'existent plus sur le dépôt distant sont en quelque sorte "coupées", supprimées du système local.
Ce tutoriel vous a été utile ? Savez-vous que notre organisation non lucrative recense plus de 8 000 tutoriels faits par des personnes qui savent ce qu'elles écrivent, comme celui-ci ? Et gratuits ? Et sans pubs ? Faites-le savoir autour de vous ! 😉