Git Delete Branch: eliminare un branch locale
Ultimo aggiornamento
Quando il lavoro di un branch è stato unito, lo elimini con git branch -d <branch>. Git si rifiuta se il branch ha commit non uniti da nessuna parte: è un controllo di sicurezza. Per eliminarlo comunque, usa la -D maiuscola. Eliminare un branch locale non tocca mai la copia sul remote: per quella serve un comando separato.
Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.
Sintassi
| Comando | Cosa fa |
|---|---|
git branch -d feature | Elimina feature (solo se è già unito) |
git branch -D feature | Forza l'eliminazione di feature anche se non è unito |
git branch -d branch1 branch2 | Elimina più branch in una volta |
Casi comuni
| Obiettivo | Comando |
|---|---|
| Eliminare un branch già unito | git branch -d old-feature |
| Forzare l'eliminazione di un branch non unito | git branch -D scratch |
| Eliminare il branch su cui ti trovi | git switch main poi git branch -d feature |
| Vedere quali branch sono già uniti | git branch --merged |
Esempio pratico
Completa una feature, fai il merge e ripulisci il branch locale.
| Passo | Comando | Risultato |
|---|---|---|
| 1 | git switch main | Esci dal branch che vuoi eliminare |
| 2 | git merge feature | Porta i commit della feature in main |
| 3 | git branch -d feature | Elimina il branch ora unito |
Domande frequenti su come eliminare un branch locale in Git
Che differenza c'è tra git branch -d e -D?
-d è l'eliminazione sicura: Git rimuove il branch solo se i suoi commit sono già stati uniti in un altro branch, così non puoi perdere lavoro per sbaglio. -D è l'eliminazione forzata (abbreviazione di --delete --force): rimuove il branch in ogni caso, anche se ha commit non uniti. Usa -d di default e ricorri a -D solo quando vuoi davvero buttare via i commit del branch.Come elimino il branch su cui mi trovo?
git switch main (o git checkout main), poi esegui git branch -d feature. Se provi a eliminare il branch corrente, Git risponde con l'errore "Cannot delete branch ... checked out".Eliminare un branch locale lo elimina anche su GitHub?
git branch -d rimuove il branch solo dal tuo repository locale. Il branch sul remote (GitHub, GitLab e così via) resta finché non lo elimini a parte con git push origin --delete feature.Posso recuperare un branch che ho eliminato?
git reflog per trovare il commit a cui puntava il branch, poi ricrealo con git branch feature <commit-hash>. I commit non vengono rimossi subito dalla garbage collection, quindi un branch eliminato per errore di norma si può ripristinare.Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire questi comandi in una vera shell nel tuo browser, senza installare nulla. Se vuoi un percorso strutturato, il corso interattivo gratuito di Git di Coddy ti accompagna dal primo commit fino a branch e merge, passo dopo passo.