Uno dei vantaggi derivanti dal versioning riguarda la possibilità di operare sui vari stadi evolutivi di un progetto indipendentemente dallo status associato all’ultima istantanea disponibile sul relativo repository. A questo proposito si ipotizzi di essere impegnati nello sviluppo di un’applicazione, quest’ultima potrebbe essere in fase avanzata di implementazione e aver già raggiunto la versione stabile 1.0. Volendo introdurre ulteriori funzionalità, magari degne di una nuova major release, potrebbe rivelarsi opportuno creare un nuovo ramo, ad esempio il 2.x.
A questo punto il ramo 1.x non verrà necessariamente abbandonato, anzi, essendo plausibilmente il branch di produzione principale in attesa che la versione 2.0 diventi definitiva, esso continuerà a ricevere supporto. Questo significa che anche nel caso in cui si stia lavorando sul nuovo ramo sarà sempre possibile intervenire su quello precedente nel caso in cui emergano delle problematiche a suo carico.
Potrebbe per esempio accadere che un utilizzatore della release 1.x invii un feedback segnalando l’individuazione di una vulnerabilità o di un malfunzionamento; ricevuta tale notifica gli sviluppatori potranno riprendere in mano la versione buggata, generare un nuovo ramo contenente la correzione del problema rilevato e unire quest’ultimo con quello da correggere per poi tornare a lavorare sul ramo 2.x.
La procedura che prevede l’apertura di un nuovo ramo per l’esecuzione di un intervento e la sua successiva fusione con il ramo che presenta la necessità di un aggiornamento prende il nome di merging, letteralmente “fusione”.
Per creare un nuovo ramo in Git, è possibile utilizzare il comando git branch
. Il comando git branch
consente di creare un nuovo ramo a partire dal commit corrente. È possibile specificare un nome per il nuovo ramo utilizzando l’opzione -b
.
Ad esempio, per creare un nuovo ramo chiamato feature
:
git checkout -b feature
Questo comando creerà un nuovo ramo chiamato feature
a partire dal commit corrente.
Per completezza, è bene precisare che sarebbe stato possibile ottenere lo stesso risultato digitando le seguenti istruzioni:
git branch feature
git checkout feature
Per unire due rami in Git, è possibile utilizzare il comando git merge
. Il comando git merge
consente di unire due rami, in particolare unisce il ramo specificato al ramo corrente.
Ad esempio, per unire il ramo feature
al ramo master
:
git checkout master
git merge feature
Questo comando unirà il ramo feature
al ramo master
.