Ecco perché Git è il sistema di controllo di versione più popolare

Creato il 29 maggio 2014 da Ico Arena @icoarena
C’era una volta il tempo in cui le persone copiavano i propri progetti in svariate directory per manutenere copie di backup dei propri progressi, avendo così sempre la possibilità di poter tornare indietro alla versione precedente qualora qualcosa andasse storto.

Così capitava di avere il PC intasato di cartelle con tipo “Progetto vers. 1″, “Progetto vers. 2″, “Progetto vers. 3″, ecc…

Che fare però se in un progetto erano coinvolte più persone che avevano la necessità di lavorarvi in contemporanea? Ehm le cose erano abbastanza complicate!

Fu così che finalmente presero piede i sistemi per il controllo di versione, divenute ormai indispensabili per qualsiasi team di sviluppo che si rispetti.
Cosa sono?
Un sistema di controllo di versione è uno strumento che registra tutte le modifiche apportate a uno o più progetti, mantenendo così le versioni del prodotto in tutte le fasi di sviluppo.
Le versioni sono come istantanee che registrano il loro stato in un determinato momento e vengono aggiornate ogni qualvolta si apportano delle modifiche al codice sorgente.

Alcuni sistemi di controllo di versione più famosi sono Subversion(SVN aka), Git e Mercurial.

Perché Git è differente

La maggior parte di essi utilizza un sistema centralizzato dove ciascun membro del progetto ha una working copy e le modifiche sono inviate a un server centrale (central repository) che di volta in volta aggiorna e invia i cambiamenti agli altri membri del team.

Git invece viene definito come sistema distribuito: questo significa che in un sistema GIT tutti gli utenti hanno la loro copia personale di codice in locale che possono mettere online in un repository per renderla fruibile ad altri membri del team.

In GIT dunque il master (il flusso principale di codice) è in locale e non in un server centralizzato remoto come accade ad esempio in SVN.
Questo si traduce in maggiore velocità in quanto si lavora essenzialmente in locale e si invia online la working copy solo quando siamo soddisfatti delle modifiche.
In altri sistemi invece è necessario connettersi al server centrale anche per svolgere operazioni anche basilari.

Lavora in libertà

Come accennato in precedenza, Git permette di lavorare tutto il locale, perché è un sistema distribuito.
Non è necessario internet per verificare i cambiamenti storici e tanto meno per confermare le ultime modifiche apportate, tutto è registrato sul tuo database locale.
Questo ti consentirà di lavorare sul treno, a casa o mentre si attraversa l’Atlantico in aereo!

Altro principio fondamentale di Git è quello di non rimuovere le informazioni.
Quando effettui una modifica nel tuo progetto, semplicemente vengono aggiunge ulteriori informazioni al repository.
Questo rende quasi nulla la possibilità di rovinare qualcosa per errore o di non essere più in grado di annullare i cambiamenti apportati.

Ovviamente, come con tutti i sistemi di controllo di versione, anche con Git è possibile perdere i dati non ancora confermati ma una volta fatto questo passo, tutto sarà salvato e si può annullare in modo sicuro.

In qualche modo Git ha rivoluzionato il mondo dello sviluppo software ed in più è un software libero distribuito sotto la GNU (General Public License).
Uno strumento indispensabile dunque per chi come me lavora in ambito web (e non solo), non credi?