Come eliminare un ramo in Git in locale e in remoto

Punti chiave

  • L’eliminazione dei rami è una parte importante di un tipico flusso di lavoro Git.
  • Puoi eliminare un ramo locale usando il comando “git branch -d [branchname]”, ma sii cauto con i cambiamenti non uniti.
  • Diversi strumenti come GitHub Desktop, GitKraken, Tower e Bitbucket hanno i propri metodi per eliminare i rami, quindi familiarizza con il processo specifico per ciascuno strumento.

I rami di Git sono così leggeri che è facile crearli ogni volta che ne hai bisogno. Ma è anche facile ritrovarsi con rami avanzati che non ti servono più. Quindi cosa comporta l’eliminazione di un ramo?

Perché eliminare un ramo?

Innanzitutto, se stai ancora imparando come strutturare un progetto utilizzando i rami git, ci sono buone probabilità che creerai un ramo e poi deciderai che non ne hai bisogno. Questo va bene poiché la ramificazione è un’operazione leggera; è molto veloce e utilizza lo spazio su disco in modo efficiente.

Di conseguenza, molti flussi di lavoro di sviluppo git incoraggiano la ramificazione, anche per attività molto piccole o brevi. Ad esempio, una strategia comune è creare un ramo separato per ogni correzione di bug.

L’eliminazione dei rami dovrebbe far parte del tuo flusso di lavoro quotidiano tanto quanto lo è la loro creazione.

Un repository di esempio con rami

Gli esempi seguenti si riferiscono ad un repository di esempio con la seguente struttura:

Tieni presente che il repository ha due rami: main e dev. Ciascuno di questi rami locali è un ramo di tracciamento, con un corrispondente ramo a monte su un server remoto (origine).

È facile perdere traccia dei rami, quindi assicurati di sapere come elencare i rami git dalla riga di comando o visualizzarli nel tuo client preferito.

Eliminazione di un ramo utilizzando la riga di comando

La sintassi di base del comando per eliminare un ramo è:

 git branch (-d | -D) [-r] <branchname>... 

Come eliminare una filiale locale

La forma più semplice del comando elimina un ramo locale, a condizione che tutte le sue modifiche siano state unite:

 git branch -d dev 

Quando le cose vanno bene, vedrai un messaggio di conferma:

Non puoi eliminare il ramo attualmente attivo; se provi a farlo, riceverai un messaggio come questo:

Se elimini un ramo locale con modifiche non unite e non inviate, perderai tali modifiche. Pertanto, git rifiuterà di eliminare tale ramo per impostazione predefinita. In questo esempio, dev ha separato le modifiche che non sono state inviate al ramo remoto:

Come dice il messaggio di errore, puoi forzare la cancellazione con il flag -D.

Puoi eliminare un ramo di monitoraggio locale se il ramo remoto corrispondente è aggiornato, anche se non unito. Git mostrerà comunque un avviso, quindi sei consapevole di cosa è successo:

Come eliminare un ramo remoto

Eliminare un ramo remoto è abbastanza diverso. Utilizzerai il comando git push insieme al flag -d per eliminare. Successivamente, fornisci il nome del remoto (spesso origine) e il nome del ramo:

Eliminazione di rami locali e remoti con GitHub Desktop

A differenza del programma git da riga di comando, L’app desktop di GitHub ti consentirà solo di eliminare il ramo attivo. Puoi effettuare questa azione tramite il menu Ramo, selezionando l’opzione Elimina e confermandola:

GitHub Desktop non ti consentirà di eliminare il ramo predefinito, ad esempio main, anche se git stesso lo supporta. Se il ramo predefinito è quello attualmente attivo, l’app disabilita l’azione del menu.

Se il ramo rappresenta anche un ramo remoto, GitHub Desktop dà la possibilità di eliminarlo anche dal remoto:

Eliminazione di rami utilizzando GitKraken

GitKraken mostra i rami locali e remoti del tuo repository nella barra laterale di sinistra. È necessario eliminarli separatamente.

Passa il mouse sopra il nome del ramo appropriato e fai clic sul menu Azioni ramo che assomiglia a tre punti verticali. Dal menu, seleziona Elimina :

Vedrai un messaggio di conferma che ti informa che si tratta di un’operazione distruttiva. Puoi confermare di voler continuare con il pulsante Elimina:

Riflettendo il comportamento predefinito del programma a riga di comando git, devi prima passare a un ramo diverso da quello che stai eliminando. Altrimenti, vedrai un messaggio di errore:

Eliminazione di rami locali e remoti utilizzando Tower

Eliminazione di un ramo con Torre è molto simile all’eliminazione di un ramo con GitKraken. L’app visualizza le filiali locali e remote in un pannello sul lato sinistro. Fare clic con il tasto destro su qualsiasi ramo e selezionare l’opzione Elimina dal menu contestuale:

Una differenza fondamentale è che puoi eliminare un ramo remoto, insieme al suo ramo locale, durante la conferma:

Eliminazione di un ramo su GitHub

GitHub funge solo da origine remota, quindi i rami sono remoti per impostazione predefinita. Se elimini un ramo utilizzando il sito Web GitHub, dovrai eliminare il ramo locale corrispondente utilizzando uno degli altri metodi qui.

Come con l’app GitHub Desktop, il sito Web GitHub non ti consentirà di eliminare il ramo predefinito. Se ci provi, vedrai un messaggio di errore:

Eliminare qualsiasi altro ramo, tuttavia, è semplice. Dalla pagina Codice del repository, fai clic sul collegamento rami, individua il ramo da eliminare, quindi fai clic sull’icona Elimina ramo, che assomiglia a un cestino:

Tieni presente che non sono previsti controlli per le modifiche non unite, quindi GitHub eliminerà semplicemente il ramo immediatamente. Tuttavia, poiché rappresenterà sempre un ramo remoto, questo comportamento dovrebbe avere senso.

Tieni presente che, dopo l’eliminazione, vedrai un pulsante per ripristinare il ramo. Tuttavia, questa è semplicemente un’utile funzione di annullamento, nel caso in cui si faccia clic accidentalmente sull’icona di eliminazione. Non fare affidamento su di esso, perché non appena aggiorni o esci dalla pagina, perderai l’opzione!

Eliminazione di rami locali e remoti su Bitbucket

Bitbucket, come GitHub, non ti consentirà di eliminare il ramo predefinito. Bitbucket lo chiama ramo principale nelle impostazioni del repository. Puoi eliminare qualsiasi altro ramo elencato nella scheda Rami, tramite il menu Azioni corrispondente:

Puoi anche eliminare più di un ramo alla volta se stai eseguendo un’operazione di pulizia di grandi dimensioni:

L’eliminazione dei rami fa parte di un tipico flusso di lavoro Git

I rami Git possono complicare il tuo flusso di lavoro, specialmente quello con rami locali, remoti e di tracciamento. Ma per il semplice sviluppo quotidiano, è probabile che tu crei ed elimini continuamente filiali locali. Questo è un aspetto fondamentale di un tipico flusso di lavoro git a cui dovresti abituarti.

Se trovi difficile ricordare esattamente come eliminare un ramo, valuta la possibilità di impostare degli alias per rimuovere i rami e semplificare il processo.