Come eliminare un ramo Git, localmente e in remoto
Un ramo locale e la sua copia remota sono due cose separate. Ecco come eliminarli ciascuno, cosa significano gli errori comuni, come ripulire i riferimenti obsoleti e come recuperare un ramo eliminato per errore.
Scritto da Kodmora
La software house dietro GitTree
- Rami
- Remoti e push
- Annullamento e ripristino
In questa pagina
Per eliminare un ramo locale, esegui `git branch -d branch-name`. Per eliminarlo sul remoto, esegui `git push origin --delete branch-name`. Sono azioni separate: l'eliminazione di una lascia l'altra al suo posto. Git rifiuta il primo comando se il ramo ha commit che non sono uniti, il che protegge il tuo lavoro.
| Obiettivo | Comando |
|---|---|
| Elimina un ramo locale unito | git branch -d feature/search |
| Eliminazione forzata di un ramo locale non unito | git branch -D feature/search |
| Elimina il ramo sul remoto | git push origin --delete feature/search |
| Rimuovere i riferimenti di tracciamento remoto obsoleti | git fetch --prune |
Come posso eliminare un ramo Git locale?
Cambia prima, perché Git non eliminerà il ramo su cui ti trovi. Quindi eliminalo:
git switch main
git branch -d feature/searchGit stampa l'ultimo commit del ramo. Conserva quell'hash per un momento, perché è il modo più semplice per tornare indietro:
Deleted branch feature/search (was 4f2a9c1).Come cancello un ramo remoto?
git push origin --delete feature/searchQuesto rimuove il ramo per tutti coloro che utilizzano quel remoto, quindi controlla che nessuno ne abbia ancora bisogno e che la sua richiesta pull sia chiusa. La tua copia locale rimane finché non la elimini anche tu.
Cosa significano gli errori di eliminazione?
| Messaggio | Significato | Correggi |
|---|---|---|
not fully merged | Il ramo ha commit che non sono nel suo upstream o in HEAD. | Uniscilo o utilizza -D se sei sicuro di non averne bisogno. |
cannot delete branch … used by worktree | Ci sei, qui o in un altro albero di lavoro. | Esegui git switch main o rimuovi l'altro albero di lavoro. |
remote ref does not exist | Il ramo è già scomparso dal remoto. | Esegui git fetch --prune per cancellare la tua copia obsoleta. |
Cosa fa git remote prune origin?
Quando qualcuno elimina un ramo sul remoto, il tuo repository conserva il suo riferimento origin/feature/search finché non lo rimuovi. La potatura elimina i riferimenti obsoleti. Non tocca mai i tuoi rami locali:
git fetch --prune
# or, without fetching anything new
git remote prune originPer vedere quali rami locali hanno perso la copia remota, cerca gone nell'elenco dettagliato:
git branch -vvCome posso ripristinare un ramo eliminato?
Un ramo è solo un nome per un commit, quindi eliminarlo non elimina immediatamente i commit. Crea nuovamente il nome dall'hash Git stampato, oppure trovalo nel reflog:
git branch feature/search 4f2a9c1
# no hash? search the reflog
git reflogFallo presto: i commit irraggiungibili alla fine verranno ripuliti dalla garbage collection. Il post su recupero di una scorta caduta o di un ramo eliminato tratta i casi più difficili, mentre la lezione su rami e cambio spiega perché un ramo è così economico.
Come eliminare un ramo in GitTree
Apri il menu del ramo
Fare clic con il pulsante destro del mouse sull'etichetta del ramo nel grafico. Il menu nomina il ramo in ciascuna azione.
Scegli Elimina
GitTree dice cosa è stato rimosso e che l'ultimo commit è stato salvato in
refs/ogt/trash. Annulla è l'impostazione predefinita, quindi premi Elimina funzione/ricerca per confermare.Elimina anche la copia remota
Elimina... e origine/... rimuove entrambi, confermato con Elimina entrambi. Un ramo eliminato sul remoto non può essere ripristinato da GitTree.
Hai cambiato idea?
Premi Annulla nella barra degli strumenti subito dopo un'eliminazione locale per ripristinare il ramo.
La guida su rinominare ed eliminare rami contiene i dettagli e come rinominare un ramo tratta invece della modifica di un nome.

Domande frequenti
L'eliminazione di un ramo elimina i suoi commit?
Non subito. Restano i commit su altri rami. I commit solo su quel ramo diventano irraggiungibili e possono essere recuperati finché la garbage collection non li rimuove.
Qual è la differenza tra git branch -d e -D?
-d rifiuta di eliminare un ramo con commit non uniti. -D lo elimina comunque, quindi utilizzalo solo quando sei sicuro.
Cancellando un ramo locale si cancella quello remoto?
No. Sono separati. Utilizza git push origin --delete branch-name per il remoto.
Perché viene ancora visualizzato un ramo remoto eliminato?
Il tuo repository ha ancora il rif. di tracciamento remoto. Esegui git fetch --prune per rimuoverlo.
Posso eliminare più rami contemporaneamente?
SÌ. git branch -d one two three elimina ogni nome elencato e git push origin --delete one two fa lo stesso sul remoto.
Fonti
Le affermazioni su altri prodotti sono state confrontate con le rispettive pagine ufficiali in data 7 novembre 2026. Cambiano prezzi e caratteristiche; le pagine dei venditori sono la fonte della verità.