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.