Il concetto di Version Control System nasce con la necessità da parte degli sviluppatori di versionare e tenere sotto controllo il codice che entra a fare parte della code base di un progetto software.
Prima dell’avvento dei VCS, per versionare il codice, si utilizzavano sistemi rudimentali e non standardizzati: copiare il codice in una nuova directory per ogni versione (V1.0, V1.1, ecc), mantenere un lungo file di changelog, e così via.
L’approccio allo sviluppo, utilizzando per esempio Git, diventa totalmente diverso.
Una volta inizializzato un cosiddetto “repository”, Git effettua una fotografia dello stato corrente dei file, e permette, man mano che si apportano modifiche, di aggiungerle alla codebase registrandole sotto forma di commit.
Il commit è l’unità minima del version control ed è costituito da:
Quando gli sviluppatori lavorano a una particolare feature, raggruppano i commit in oggetti più strutturati e complessi chiamati branch.
Nella maggior parte dei progetti il branch principale (di rilascio) è chiamato master o main; gli sviluppatori creano i loro branch, vi aggiungono dei commit con le loro modifiche, e poi effettuano un cosiddetto merge sul branch principale.
Questo può avvenire in due diverse formule, entrambe molto popolari ed efficaci:
Il Gitlab flow è stato pensato come alternativa più snella ed agile rispetto al tradizionale Git flow. Grazie ad esso è possibile effettuare release più frequenti – in quanto main viene aggiornato più spesso – diminuendo i tempi per la risoluzione di bug e l’implementazione di funzionalità.
L’offerta formativa di ITS presenta corsi in ambito IT all’avanguardia, tenuti da professionisti del settore e volti all’inserimento lavorativo. Il Corso di Web Developer prevede, infatti, tra le diverse materie proposte anche “Fondamenti di Version Control” per garantire uno strumento indispensabile in ogni professione che abbia a che fare con lo sviluppo e, in modo crescente, anche con il mantenimento di infrastrutture.