Come eliminare un ramo in Git in locale e in remoto

Come eliminare un ramo in Git in locale e in remoto

Una delle caratteristiche più forti di Git sono i suoi rami leggeri. Consentono di lavorare in modo efficiente su fasi parallele di sviluppo. Uno sviluppatore potrebbe persino creare rami individuali per bug separati. Sia nel tempo che nello spazio, le filiali sono quasi gratuite.





miglior gestore di file di Windows gratuito 2018

Molti flussi di lavoro git si occupano sia di rami a lungo termine che temporanei. Pertanto, è spesso necessario eliminare i rami durante lo sviluppo. Occasionalmente è necessario eliminare le filiali condivise, da un server remoto, nonché le filiali locali.





Perché eliminare un ramo?

Innanzitutto, se stai ancora facendo i conti con git , ci sono buone probabilità che creerai un ramo e poi decidi che non ne avevi bisogno. Oppure potresti sperimentare con i rami e voler chiarire dopo te stesso. Questo va bene poiché la ramificazione in git è un'operazione leggera. È molto veloce e utilizza lo spazio su disco in modo efficiente.





Di conseguenza, molti flussi di lavoro di sviluppo git incoraggiano il branching, anche per attività molto piccole o brevi. Ad esempio, una strategia comune è quella di creare un ramo per una singola correzione di bug. Questo è vero anche se si tratta solo di un singolo autore che apporta una modifica di una riga in un singolo file.

Per questi motivi, creare ed eliminare rami sono operazioni che devono essere ben comprese. Potresti trovarti spesso a eliminare rami durante un tipico flusso di lavoro di sviluppo.



Un repository di esempio con rami

I seguenti esempi fanno riferimento a un repository di esempio con la seguente struttura:

$ git branch -vv
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

Nota che ogni ramo locale ha un ramo upstream corrispondente dal remoto: origine .





Eliminazione di un ramo utilizzando la riga di comando

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

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

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





$ git branch -d dev

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

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

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

Deleted branch dev (was 1ae41e8).

Se elimini un ramo che esiste solo localmente, con modifiche non unite, perderai quelle modifiche. Pertanto, git rifiuterà di eliminare un ramo in una situazione del genere, per impostazione predefinita:

error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev’.

Come informa il messaggio di errore, puoi forzare la cancellazione con il -D bandiera. Tuttavia, git ti consentirà di eliminare un ramo locale non unito se esiste in remoto:

warning: deleting branch ‘dev’ that has been merged to
'refs/remotes/origin/dev’, but not yet merged to HEAD.
Deleted branch dev (was 9a6d20b).

L'eliminazione di un ramo remoto è molto diversa. Utilizzerai il git push comando insieme a -D contrassegno da eliminare. Successivamente, fornire il nome del telecomando (spesso origine ) e il nome della filiale:

$ git push -d origin dev
To github.com:bobbykjack/sandbox.git
- [deleted] dev

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 eseguire questa azione tramite il Ramo menu, selezionando il Elimina opzione e confermandola:

GitHub Desktop non ti consente di eliminare il ramo predefinito, ad es. 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 offre la possibilità di eliminarlo anche dal remoto:

Eliminazione di rami usando GitKraken

GitCrack mostra i rami locali e remoti del tuo repository nella barra laterale di sinistra. È necessario eliminare ciascunoseparatamente.

Passa il mouse sopra il nome del ramo appropriato e fai clic su Ramo menu delle azioni 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 Elimina pulsante:

Riflettendo il comportamento predefinito del programma da 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

Eliminare un ramo con Torre è molto simile all'eliminazione di un ramo con GitKraken. I rami locali e remoti sono mostrati in un pannello sul lato sinistro. Fare clic con il pulsante destro del mouse su qualsiasi ramo e selezionare l'opzione Elimina dal menu di scelta rapida:

Una differenza fondamentale è che un ramo remoto può essere eliminato 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. L'opzione semplicemente non viene visualizzata. Tuttavia, l'eliminazione di un ramo è semplice. Dal repository Codice pagina, fare clic su rami collegamento, individuare il ramo da eliminare, quindi fare clic su Elimina questo ramo icona, che assomiglia a un cestino:

Tieni presente che non ci sono controlli per le modifiche non unite, quindi su GitHub, il ramo verrà semplicemente eliminato immediatamente. Tuttavia, poiché rappresenterà sempre un ramo remoto, questo dovrebbe essere il comportamento che ti aspetti.

Nota che, dopo l'eliminazione, vedrai un pulsante per Ristabilire 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 il Ramo principale in Impostazioni del repository . Puoi eliminare qualsiasi altro ramo elencato nel Rami scheda, tramite il suo corrispondente Azioni menù:

Puoi anche eliminare più di un ramo contemporaneamente se stai eseguendo una grande operazione di pulizia:

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

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

Condividere Condividere Tweet E-mail Come utilizzare i rami Git per strutturare il tuo progetto di programmazione

In questo articolo vedremo cosa significa ramificare il tuo codice, come farlo e come gestire gli aggiornamenti al ramo git 'principale'.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • GitHub
Circa l'autore Bobby Jack(58 articoli pubblicati)

Bobby è un appassionato di tecnologia che ha lavorato come sviluppatore software per quasi due decenni. È appassionato di giochi, lavora come editor di recensioni presso Switch Player Magazine ed è immerso in tutti gli aspetti dell'editoria online e dello sviluppo web.

Altro da Bobby Jack

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti