Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

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

Descrizione

Il comando git branch gestisce i branch. Senza argomenti elenca i branch locali e marca quello corrente con un asterisco. Dato un nome, crea un nuovo branch che punta all'HEAD corrente (o a un punto di partenza specificato). Può anche cancellare, rinominare e ispezionare i branch. Un branch in Git è un puntatore leggero e spostabile a un commit — crearne uno è essenzialmente gratuito, ed è per questo che i workflow Git incoraggiano molti branch a vita breve.

Nota: git branch <name> crea un branch ma non passa ad esso. Per creare e passare in un solo passo, usa git switch -c <name> o git checkout -b <name>. Il comportamento --track fa seguire a un nuovo branch un branch remoto per i default di push/pull.

Nell'uso quotidiano, git branch si integra con alias, editor e CI. Per il debug usa GIT_TRACE=1.

Capire come git branch interagisce con il modello dati di Git aiuta a prevedere i risultati.

Opzioni comuni

OpzioneDescrizione
-a, --allElenca sia branch locali che di tracking remoto.
-r, --remotesElenca solo branch di tracking remoto.
-v, --verboseMostra l'ultimo commit su ogni branch.
-d <name>Cancella un branch completamente mergiato.
-D <name>Forza la cancellazione di un branch anche se non mergiato.
-m <old> <new>Rinomina un branch.
--merged / --no-mergedFiltra i branch (non) mergiati in HEAD.
--set-upstream-to=<remote>/<branch>Configura il tracking per il branch corrente.

Esempi

git branch
# Elenca i branch locali

git branch feature/login
# Crea un nuovo branch dall'HEAD corrente

git branch -d old-feature
# Cancella un branch mergiato

git branch -m main trunk
# Rinomina il branch locale main in trunk

git branch -a -v
# Elenca tutti i branch (locali + remoti) con ultimi commit

Errori comuni

Usare -D per forzare la cancellazione di un branch può perdere commit non mergiati per sempre (beh, finché git reflog non scade). Prova sempre prima -d. Rinominare il branch corrente con -m funziona senza argomenti — git branch -m new-name rinomina qualsiasi cosa tu sia. Dimenticare di impostare il tracking dell'upstream dopo aver creato un branch significa che git push potrebbe aver bisogno di argomenti espliciti la prima volta.

Comandi correlati

git switch, git checkout, git merge, git push