Introduzione
I Branches fanno parte del processo di sviluppo quotidiano e una delle funzionalità più potenti di Git. Una volta che un branch viene unito, non serve a nulla se non per la ricerca storica. È pratica comune e raccomandata eliminare il branch dopo un merge (unione) riuscito.
Questa guida spiega come eliminare i Git Branchs locali e remoti.
Eliminare un Branch Git locale
Per cancellare un Git Branch locale usa il comando git branch
con l' opzione -d
(--delete
):
git branch -d branch_name
Deleted branch branch_name (was 17d9aa0).
Se si tenta di eliminare un branch che contiene modifiche che non sono ancora state unite, verrà visualizzato il seguente messaggio di errore:
error: The branch 'branch_name' is not fully merged.
If you are sure you want to delete it, run 'git branch -D branch_name'.
Come dice il messaggio sopra, puoi forzare la cancellazione usando l'opzione -D
che è una scorciatoia per --delete --force
:
git branch -D branch_name
Si noti che se si elimina un branch non unito, si perderanno tutte le modifiche su quel branch.
Per elencare tutti i branches che contengono modifiche non unite, utilizzare il comando git branch --no-merged
.
Se si tenta di rimuovere il branch corrente, verrà visualizzato il seguente messaggio:
error: Cannot delete branch 'branch_name' checked out at '/path/to/repository'
Non puoi eliminare il branch in cui ti trovi attualmente. Innanzitutto, passa a un altro branch e quindi elimina branch_name
:
git checkout master
git branch -d branch_name
Eliminare un Git Branch remoto
In Git, i branch locali e remoti sono oggetti separati. L'eliminazione di un branch locale non rimuove il branch remoto.
Per eliminare un branch remoto, utilizzare il comando git push
con l'opzione -d
(--delete
):
git push remote_name --delete branch_name
Dove remote_name
è solitamente origin
:
git push origin --delete branch_name
...
- [deleted] branch_name
Esiste anche un comando alternativo per eliminare un branch remoto, più difficile da ricordare:
git push origin remote_name :branch_name
Se stai lavorando a un progetto con un gruppo di persone e provi a eliminare un branch remoto che è già stato rimosso da qualcun altro, riceverai il seguente messaggio di errore:
error: unable to push to unqualified destination: branch_name The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to '[email protected]:/my_repo'
In situazioni come questa, dovrai sincronizzare la tua lista dei branchs con:
git fetch -p
L'opzione -p
dice a Git di rimuovere qualsiasi riferimento di tracciamento remoto che non esiste più nel repository remoto prima del recupero.
Conclusione
In questo tutorial, hai imparato come eliminare i Git Branches locali e remoti. I branches sono fondamentalmente un riferimento a un'istantanea delle modifiche e hanno un ciclo di vita breve. Una volta che il branch viene unito nel master (o in un altro branch principale), non è più necessario e deve essere rimosso.