01. Introduzione a Git
1.1 Che cos’è Git
Section titled “1.1 Che cos’è Git”Git è un sistema di controllo delle versioni (Version Control System, VCS) gratuito e open source, creato da Linus Torvalds nel 2005. Un VCS permette di tenere traccia della cronologia di ogni modifica apportata al proprio codice, ma Git si distingue dagli strumenti che lo hanno preceduto per il suo approccio distribuito, che facilita enormemente lo sviluppo collaborativo.
È il VCS più diffuso al mondo: in vari sondaggi risulta usato da oltre il 90% degli sviluppatori come strumento primario. Ha anche fama di essere difficile da padroneggiare — non temere, capita anche a sviluppatori esperti di dover cercare il comando esatto per operazioni avanzate.
1.2 Come è nato Git
Section titled “1.2 Come è nato Git”La nascita di Git è legata, come spesso accade nel mondo open source, alla necessità di un’alternativa libera a un tool proprietario. Nel 2005 lo sviluppo del kernel Linux si appoggiava a BitKeeper, un SCM proprietario con una licenza “community”. Quando, a causa di restrizioni d’uso (alcuni sviluppatori stavano realizzando una copia open del tool), la licenza venne ritirata, Torvalds e il team Linux si ritrovarono senza uno strumento adeguato: applicare una singola patch via email poteva richiedere mezz’ora, e modifiche articolate fino a due ore.
In poche settimane (aprile–luglio 2005) Git fu sviluppato con tre obiettivi principali:
- supportare un flusso di lavoro distribuito;
- garantire la salvaguardia dell’integrità dei dati;
- offrire prestazioni elevate anche su progetti enormi.
Git divenne subito lo strumento di gestione delle release del kernel Linux; la versione 1.0 arrivò a dicembre 2005.
1.3 Caratteristiche principali
Section titled “1.3 Caratteristiche principali”- Sviluppo distribuito: nessuno sviluppatore dipende da un server centrale che detiene la copia “originale” del progetto; ognuno ha una copia completa.
- Prestazioni elevate anche su progetti enormi: lavorare su progetti con lunga storia o migliaia di file è rapido quanto lavorare su progetti piccoli.
- Integrità della history: l’ultima versione è data dalla sequenza esatta di tutte le modifiche. Anche se è possibile inserire una modifica tra due modifiche passate, questo cambio della sequenza degli eventi non può passare inosservato.
1.4 Riga di comando e GUI
Section titled “1.4 Riga di comando e GUI”Git nasce come tool da riga di comando, con la seguente sintassi generale:
git [opzioni...] <comando> [argomenti...]I comandi si raggruppano in ambiti: avviare una working area, lavorare sulle modifiche, esaminare cronologia e stato, modificare la history, collaborare.
Esistono anche numerose interfacce grafiche (GUI dedicate) e la maggior parte degli IDE integra i comandi Git principali. Per imparare conviene usare la riga di comando, ma le due cose sono interscambiabili: tutte fanno riferimento alla stessa cronologia salvata del progetto.