Git : Supprimer une branche locale
Dernière mise à jour
Une fois le travail d'une branche fusionné, vous la supprimez avec git branch -d <branch>. Git refuse si la branche contient des commits qui ne sont fusionnés nulle part - c'est une vérification de sécurité. Pour la supprimer quand même, utilisez le -D majuscule. Supprimer une branche locale ne touche jamais à la copie sur le dépôt distant ; c'est une commande à part.
Essayez ceci dans le terminal playground - un vrai shell dans votre navigateur, rien à installer.
Syntaxe
| Command | What it does |
|---|---|
git branch -d feature | Supprime feature (uniquement si elle est fusionnée) |
git branch -D feature | Force la suppression de feature même si elle n'est pas fusionnée |
git branch -d branch1 branch2 | Supprime plusieurs branches à la fois |
Cas courants
| Goal | Command |
|---|---|
| Supprimer une branche fusionnée | git branch -d old-feature |
| Forcer la suppression d'une branche non fusionnée | git branch -D scratch |
| Supprimer la branche courante | git switch main puis git branch -d feature |
| Voir quelles branches sont fusionnées | git branch --merged |
Exemple complet
Terminez une fonctionnalité, fusionnez-la et nettoyez la branche locale.
| Step | Command | Result |
|---|---|---|
| 1 | git switch main | Quittez la branche que vous voulez supprimer |
| 2 | git merge feature | Amenez les commits de la fonctionnalité dans main |
| 3 | git branch -d feature | Supprimez la branche désormais fusionnée |
FAQ sur la suppression d'une branche locale Git
Quelle est la différence entre git branch -d et -D ?
-d est la suppression sûre : Git ne supprime la branche que si ses commits sont déjà fusionnés dans une autre branche, ce qui évite de perdre du travail par accident. -D est la suppression forcée (raccourci de --delete --force) : elle supprime la branche quoi qu'il arrive, même si elle a des commits non fusionnés. Utilisez -d par défaut et n'utilisez -D que lorsque vous êtes sûr de vouloir jeter les commits de la branche.Comment supprimer la branche sur laquelle je me trouve actuellement ?
git switch main (ou git checkout main), puis exécutez git branch -d feature. Si vous essayez de supprimer la branche courante, Git renvoie l'erreur "Cannot delete branch ... checked out".Supprimer une branche locale la supprime-t-elle sur GitHub ?
git branch -d ne supprime la branche que de votre dépôt local. La branche sur le dépôt distant (GitHub, GitLab, etc.) reste jusqu'à ce que vous la supprimiez séparément avec git push origin --delete feature.Puis-je récupérer une branche que j'ai supprimée ?
git reflog pour trouver le commit sur lequel pointait la branche, puis recréez-la avec git branch feature <commit-hash>. Les commits ne sont pas immédiatement supprimés par le ramasse-miettes, donc une branche supprimée par erreur peut normalement être restaurée.