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.