devdev / in the loop
Git Git

Guida a GitFlow
Finalizzare una release

Una volta che il ramo develop ha accumulato, tramite unioni (merge), abbastanza feature, siamo pronti per approcciare una nuova release del progetto. Per farlo, creiamo un ramo (branch) a partire da develop. Su questo nuovo ramo, che per prassi avrà un nome del tipo release/1.2, non dovremmo scrivere nuove integrazioni, ma limitarci a quei piccoli compiti che porta dietro ogni release, come fixare gli ultimi bug, aggiungere documentazione, pulire o aggiungere commenti, etc.

Quando il ramo è pronto, dovremmo unirlo nel ramo master e poi nuovamente nel ramo develop.

Utilizzare questo approccio permette agli sviluppatori di lavorare e finalizzare una release mentre è possibile ancora lavorare parallelamente su altre funzioni (cioè su altri rami feature/*) che non sono state ancora rilasciate. Inoltre, utilizzando una struttura dei nomi formale e condivisa, si può capire subito, a colpo d’occhio, lo stato attuale del progetto.

Non ci rimane poi che aggiungere un tag al merge (ovvero al commit risultante dall’unione) tra master e release/1.2 con appunto il numero di versione 1.2.

Vediamo come creare un branch di release con i comuni comandi git:

git checkout develop
git checkout -b release/1.2

Se volessimo farlo con git-flow:

$ git flow release start 1.2
Switched to a new branch 'release/1.2'

Come dicevamo, a questo punto ci troviamo sul nuovo ram e possiamo andare ad eseguire bugfix e altre operazioni per prepararci al rilascio di questa versione. Una volta pronti, faremo il merge di questo ramo in master, poi in develop e poi potremmo semplicemente cancellarlo. Il motivo dell’unione in develop è semplice: ipotizzando di aver fixato qualche bug critico, l’avremmo fixato anche nelle altre (future) versioni.

Per finalizzarlo, ovvero rilasciare una nuova versione del nostro progetto, lo uniremo in master, poi in develop:

Con i comandi git:

git checkout develop
git merge release/1.2
git checkout master
git merge release/1.2
git tag 1.2
git branch -D release/1.2

Con l’estensione git-flow tutto si riassume in un unico comando:

git flow release finish '1.2'
Capitolo successivo → Creare un hotfix
if (weekend) {
    relax();
}
la nostra newsletter, ogni tanto.