I rami (branch) di hotfix vengono usati per aggiustare bug che affliggono la release attualmente in produzione. Sono fondamentali perché ci permetteranno di gestire bug che al momento i nostri utenti stanno “subendo” oppure di tappare falle di sicurezza zero-day.

Per questo motivo i rami hotfix hanno un flusso più rapido rispetto ai rami visti in precedenza. Visto che fixano bug già distribuiti, un ramo hotfix/nomebug verrà creato a partire direttamente da master e, una volta corretto il problema, dovrà essere unito (merge) sia in master che develop (oppure nella release che attualmente si sta preparando).

Un approccio di questo tipo ci permetterà quindi di fare bug fix senza interrompere i lavori al progetto su altri rami rendendo però questo nuovo fix disponibile anche per le future release.

Vediamo come creare un ramo hotfix con i comuni comandi git:

git checkout master
git checkout -b hotfix/nomebug

Utilizzando l’estensione git-flow, invece:

git flow hotfix start nomebug

Quando avremo terminato la scrittura del nostro fix, facciamo il merge di questo ramo in develop e in master. Poi, possiamo semplicemente cancellarlo. Usando i comandi git:

git checkout master
git merge hotfix/nomebug
git tag 1.2.1
git checkout develop
git merge hotfix/nomebug
git branch -D hotfix/nomebug

Con git-flow basterà un solo comando:

git flow hotfix finish nomebug

Come già detto in precedenza, ogni commit o merge nel ramo master genererà una nuova release number, che nel nostro esempio sarà 1.2.1.