Le ramificazioni (branch)

Veniamo ora ad uno dei capitoli principali di questa guida, quello riguardante le ramificazioni ( branch). Una diramazione è, come dice il nome, un percorso diverso e staccato da quello principale ( master) del progetto. Questo è molto utile per avere dei flussi paralleli indipendenti in cui possiamo sperimentare nuove funzioni o correggere bug senza intaccare il progetto principale e poi, eventualmente, unirli ( merge ) nel ramo principale o in altri rami. Git incentiva molto l’uso dei branch , e noi vi consigliamo vivamente di sfruttarli al massimo: renderanno il lavoro molto più agile e semplice da gestire.

Prima di partire con la creazione e modifica di un ramo, dobbiamo dare uno sguardo al comando git checkout .

git checkout

Questo comando, che vedremo sempre più spesso nei prossimi esempi, è uno dei comandi fondamentali di Git, perché dice sostanzialmente “adesso lavoriamo su questo ramo”. Quando cioè eseguiamo

stiamo dicendo al sistema di lavorare sul ramo master. Questo significa che nella nostra cartella di lavoro i file saranno riportati all’ultimo stadio di quel ramo, e che tutti i futuri comandi che eseguiremo saranno relativi proprio a quel ramo. Lo useremo spesso per saltare tra un ramo e l’altro.

Creare un ramo

Il comando per creare un ramo è semplicemente git branch <nome> . Quando creiamo un nuovo ramo, ricordiamoci che Git non vi si sposta automaticamente nel ramo appena creato, ma dovremmo farlo noi con git checkout <nome> . Creiamo, ad esempio un branch  chiamato test:

Per spostarci in questo nuovo ramo, usiamo il comando

A questo punto, se proviamo a modificare un file nella nostra cartella di lavoro ed effettuiamo un commit, portiamo avanti il ramo test che resta indipendente dagli altri. Proviamo a creare e aggiungere un nuovo file:

Se volessimo tornare al ramo master , dovremmo lanciare il comando

Lista dei rami

Per visualizzare la lista dei rami, usiamo il comando git branch :

L’asterisco (*) accanto al nome indica che attualmente ci troviamo in quel ramo.

Cancellare un ramo

Per cancellare il ramo chiamato test , usiamo il comando

Se abbiamo già lavorato in questo ramo, Git ci darà un errore:

Per non farci perdere il nostro lavoro, Git ci ricorda che l’avanzamento di questo ramò andrà perso se non lo uniamo ( merge ) ad un altro ramo. Nel prossimo capitolo vedremo il grande vantaggio proprio della funzione di merge .