Dotenv

Gitflow: Il Workflow Essenziale per il Continuous Software Development

Nel mondo dello sviluppo software, il controllo delle versioni è essenziale per gestire e coordinare il lavoro di più sviluppatori. Git è uno dei sistemi di versionamento più popolari grazie al suo modello di branching flessibile che supporta lo sviluppo continuo. In questo articolo, analizzeremo le principali tipologie di sistemi di controllo delle versioni, con un focus particolare su Git e sul workflow Gitflow, una metodologia che facilita il continuous software development.

Le principali tipologie di VCS

Centralized Version Control Systems (CVCSs)

I sistemi di controllo delle versioni centralizzati (CVCSs) hanno un singolo server che contiene tutti i file versionati. I vari client prelevano i file da questo server. Tuttavia, il principale difetto di questa architettura è il rischio associato al server centralizzato: se il server si danneggia o non è disponibile, si rischia di perdere l’intero progetto e la sua cronologia, specialmente in assenza di backup.

Distributed Version Control Systems (DVCSs)

Nei sistemi di controllo delle versioni distribuiti (DVCSs), ogni client crea una copia completa del repository, inclusa la sua cronologia. Di conseguenza, ogni clone è un vero e proprio backup di tutti i dati. Git, uno dei più noti DVCSs, si distingue per il suo modello di branching, che consente a più team di lavorare contemporaneamente su diverse parti del progetto.

Il branching model di Git

Git è un sistema di versionamento open source noto per il suo branching model avanzato. Questo modello incoraggia la creazione di branch locali indipendenti, favorendo lo sviluppo simultaneo da parte di diversi team. Git si basa su due principali branch:

  • MASTER/MAIN: il branch dedicato alla produzione.
  • DEVELOP: il branch di sviluppo dove vengono eseguiti i test e uniti i singoli branch di sviluppo delle nuove funzionalità.

Alla base di Git c’è un workflow basato sulle funzionalità, che promuove la creazione di un nuovo branch per ogni nuova funzione su cui si sta lavorando. Questo consente un facile switch tra branch, permettendo di passare senza problemi da uno all’altro. Terminato lo sviluppo di una funzionalità, il branch di sviluppo viene eliminato unendolo (mergiandolo) al branch ufficiale di sviluppo e test (DEVELOP). Quando si vuole passare in produzione, tutto viene unito in MASTER/MAIN.

Gitflow: a Supporto del continuous software development

Cos’è Gitflow?

Gitflow, inizialmente pubblicato da Vincent Driessen, è un workflow Git che aiuta nel continuous software development. Questo metodo definisce un modello di branching orientato a progetti schedulati e ciclici, mantenendo gli standard base di Git ma assegnando ruoli specifici a diversi tipi di branch in base al loro scopo.

Comandi introdotti da Gitflow

I comandi di Gitflow sono raggruppamenti di comandi base di Git che facilitano la gestione dei branch:

sh

git flow release finish 1.2.0
git checkout master
git merge –no-ff release/1.2.0
git tag -a 1.2.0
git checkout develop
git merge –no-ff release/1.2.0
git branch -d release/1.2.0

Branch e il loro scopo

  • Feature Branch: Ha origine da DEVELOP e, una volta terminato, viene mergiato nello stesso. Utilizzato per lo sviluppo parallelo di nuove funzionalità.
  • Release Branch: Ha origine da DEVELOP e contiene un insieme di funzionalità pronte per essere testate e pubblicate. Viene mergiato in MASTER/MAIN e DEVELOP una volta pronto per la produzione.
  • Hotfix Branch: Ha origine da MASTER/MAIN e serve per correzioni rapide di bug presenti in produzione. Viene mergiato in MASTER/MAIN e DEVELOP dopo la risoluzione.

Regole d’oro di Gitflow

  1. Un branch develop viene creato da master/main.
  2. Un branch release viene creato da develop.
  3. I branch feature vengono creati da develop.
  4. Quando una feature è completa, viene mergiata in develop.
  5. Quando il branch release è pronto, viene mergiato in develop e master/main.
  6. Se viene rilevato un problema in master/main, si crea un branch hotfix da master.
  7. Una volta completato il hotfix, viene mergiato sia in develop che in master/main.

 

Adottare un workflow come Gitflow è fondamentale per qualsiasi organizzazione che mira a eccellere nel proprio settore. DotEnv ha integrato questa metodologia nei suoi processi quotidiani, assicurando così elevati standard di efficienza, professionalità e soddisfazione del cliente. Grazie a Gitflow, possiamo gestire progetti complessi con facilità, mantenendo la qualità e la coerenza in tutte le fasi dello sviluppo.

Contattaci ora per sviluppare la tua idea!