Vai al contenuto
GitTree
Guide Git3 minuti di lettura

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

Aggiornato
  • 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.

Quale comando elimina cosa
ObiettivoComando
Elimina un ramo locale unitogit branch -d feature/search
Eliminazione forzata di un ramo locale non unitogit branch -D feature/search
Elimina il ramo sul remotogit push origin --delete feature/search
Rimuovere i riferimenti di tracciamento remoto obsoletigit 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/search

Git 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/search

Questo 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?

Errori comuni durante l'eliminazione di un ramo
MessaggioSignificatoCorreggi
not fully mergedIl 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 worktreeCi sei, qui o in un altro albero di lavoro.Esegui git switch main o rimuovi l'altro albero di lavoro.
remote ref does not existIl 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 origin

Per vedere quali rami locali hanno perso la copia remota, cerca gone nell'elenco dettagliato:

git branch -vv

Come 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 reflog

Fallo 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Il menu del ramo in GitTree nomina il ramo in ogni azione, così puoi vedere cosa verrà rimosso da Elimina.
Il menu del ramo in GitTree nomina il ramo in ogni azione, così puoi vedere cosa verrà rimosso da Elimina.

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à.