Par Anonyme (non vérifié) , 29 avril 2026

Synopsis

git branch [-a] [-r] [-v] [-d <name>] [-m <old> <new>] [<name> [<start-point>]]

Description

The git branch command manages branches. With no arguments it lists local branches and marks the current one with an asterisk. Given a name, it creates a new branch pointing at the current HEAD (or at a specified start point). It can also delete, rename, and inspect branches. A branch in Git is a lightweight, movable pointer to a commit — creating one is essentially free, which is why Git workflows encourage many short-lived branches.

Note: git branch <name> creates a branch but does not switch to it. To create and switch in one step, use git switch -c <name> or git checkout -b <name>. The --track behavior makes a new branch follow a remote branch for push/pull defaults.

Dans l'usage quotidien, git branch s'intègre étroitement avec les alias de shell, les plugins d'éditeur et l'intégration continue. Les utilisateurs avancés ajoutent souvent des alias combinant les flags qu'ils passent toujours, ou enveloppent la commande dans des scripts qui appliquent les conventions d'équipe. Le formatage de la sortie peut être personnalisé via la configuration Git — pretty formats, schémas de couleurs et comportement du pager sont tous ajustables. Quand quelque chose tourne mal, la première étape de diagnostic est généralement de relancer la commande avec GIT_TRACE=1 dans l'environnement, ce qui révèle les appels de plomberie sous-jacents. Pour les situations inhabituelles, la sortie --help (git branch --help) ouvre la page de manuel complète avec les détails de chaque option, y compris celles rarement utilisées dans les workflows ordinaires mais essentielles pour le débogage ou le scripting à grande échelle.

Comprendre comment git branch interagit avec le reste du modèle de données de Git — la base d'objets, l'index, les refs et l'arborescence de travail — est rentable. Chaque commande opère sur un sous-ensemble de ces pièces, et savoir laquelle elle touche aide à prédire les résultats et récupérer après les erreurs. Lire la documentation officielle de Git en parallèle de la pratique sur un dépôt jetable est la façon la plus rapide d'intérioriser les subtilités. La plupart des problèmes de production avec Git proviennent de l'une de trois causes : comportement par défaut surprenant, opérations réseau partielles, ou réécriture d'historique déjà partagé. Un modèle mental fonctionnel des effets de bord de git branch aide à éviter les trois.

Options courantes

OptionDescription
-a, --allLister les branches locales et de tracking distant.
-r, --remotesLister seulement les branches de tracking distant.
-v, --verboseAfficher le dernier commit sur chaque branche.
-d <name>Supprimer une branche entièrement mergée.
-D <name>Forcer la suppression d'une branche même non mergée.
-m <old> <new>Renommer une branche.
--merged / --no-mergedFiltrer les branches (non) mergées dans HEAD.
--set-upstream-to=<remote>/<branch>Configurer le tracking pour la branche courante.

Exemples

git branch
# Lister les branches locales

git branch feature/login
# Créer une nouvelle branche depuis HEAD

git branch -d old-feature
# Supprimer une branche mergée

git branch -m main trunk
# Renommer la branche locale main en trunk

git branch -a -v
# Lister toutes les branches avec derniers commits

Erreurs fréquentes

Using -D to force-delete a branch can lose unmerged commits forever (well, until git reflog expires). Always try -d first. Renaming the current branch with -m works without arguments — git branch -m new-name renames whatever you're on. Forgetting to set upstream tracking after creating a branch means git push may need explicit arguments the first time.

Commandes liées

git switch, git checkout, git merge, git push