Vent’anni dal primo commit
Il 7 aprile 2005 Linus Torvalds esegue il primo commit di Git, un sistema di controllo di versione distribuito scritto per gestire lo sviluppo del kernel Linux dopo la rottura con BitKeeper. L’obiettivo è un sistema veloce, distribuito e resistente alla corruzione dei dati. Vent’anni dopo, Git non è solo il sistema di version control dominante: è l’infrastruttura invisibile su cui si basa l’intero ecosistema dello sviluppo software.
Le scelte architetturali originali — DAG di commit identificati da hash SHA-1, oggetti immutabili, branching e merging leggeri — si sono rivelate notevolmente durature. Il modello distribuito, dove ogni clone contiene l’intera storia del repository, ha eliminato la dipendenza da un server centrale e reso possibili workflow che i sistemi centralizzati come SVN e CVS non potevano supportare.
L’ecosistema costruito su Git
GitHub (2008), GitLab (2011) e Bitbucket hanno trasformato Git da strumento a riga di comando in piattaforma collaborativa. Pull request, code review, CI/CD integrata, issue tracking: funzionalità che non fanno parte di Git stesso ma che esistono grazie al suo modello distribuito. La forge è diventata il centro gravitazionale del ciclo di vita del software, e Git ne è il protocollo sottostante.
L’acquisizione di GitHub da parte di Microsoft nel 2018 per 7,5 miliardi di dollari ha confermato il valore economico dell’ecosistema costruito attorno a Git. GitLab, con il suo approccio DevOps completo in un’unica piattaforma, ha creato un mercato parallelo dove Git è il layer di persistenza per pipeline, infrastruttura e configurazione.
Scalare per repository enormi
Uno dei problemi tecnici più significativi degli ultimi anni è la scalabilità su repository di grandi dimensioni. Aziende come Microsoft (con il repository di Windows, centinaia di migliaia di file) hanno spinto lo sviluppo di funzionalità specifiche. Sparse checkout permette di scaricare solo una porzione dell’albero dei file. Partial clone evita di trasferire l’intera storia degli oggetti, scaricando i blob on demand. Worktree consente di lavorare su più branch contemporaneamente senza cloni multipli.
La transizione da SHA-1 a SHA-256 è in corso, motivata dalle vulnerabilità teoriche dell’algoritmo originale. Il processo è graduale e retrocompatibile, a testimonianza della complessità di modificare un formato di dati adottato da miliardi di repository.
Uno standard che non ha alternative
A vent’anni dalla creazione, Git non ha concorrenti reali. Mercurial, l’alternativa più credibile, è stato abbandonato da quasi tutti i progetti che lo utilizzavano. Nuovi sistemi come Jujutsu e Pijul esplorano modelli diversi ma partono dalla compatibilità con Git come requisito minimo. Il version control distribuito non è più una categoria di software: è Git.
Link: git-scm.com
