• Home
  • git flow – come risolvere l’enigma dei branch divergenti

Se siete sviluppatori di software, sarete anche avezzi alle varie tipologie di versionamento dello stesso quali svn e, soprattutto, git ed il suo flusso di sviluppo git flow.


GIT FLOW

GIT flow è un flusso di sviluppo, ad opera di Vincent Driessen, che descrive un modello di branching costruito intorno al concetto di release software.

Questo flusso è concepito per sfruttare al meglio git. Il flusso descritto in Git flow è finalizzato a mantenere la storia dello sviluppo sempre chiara e pulita.

vantaggi di questo approccio al versionamento sono: tenere una storia pulita e leggibile, e poter concentrare e diversificare gli sforzi degli sviluppatori sulle particolari fasi (sviluppo, correzione, rilascio), concedendo a ciascuno di essi determinati spazi e tempistiche all’interno del flusso.

git flow workflow


git flow branches have diverged

Prima o poi vi sarà capitato di avere branch divergenti mentre tentavate di finalizzare la feature su cui sviluppavate da giorni.

Voi premete invio dopo git flow feature finish lamiafeature e la shell che vi risponde:

Branches 'develop' and 'origin/develop' have diverged.
And branch 'develop' may be fast-forwarded.

Questo accade in varie occasioni, ma in generale quando develop è avanzato mentre voi sviluppavate la vostra feature.

Per risolvere dovete prima di tutto sincronizzare develop (in locale!) con origin: git checkout develop && git pull origin.

A questo punto, doreste eseguire un rebase della vostra feature su develop: git flow feature rebase lamiafeature.

Gli scenari a questo punto sono due:

  • potrebbero esserci dei conflitti. Dovreste risolverli e verificare che non ci siano ulteriori problemi.
  • nessun conflitto, potete procedere tranquillamente

Infine, finalizzate la vostra feature: git flow feature finish lamiafeature


Condividi: