Programmazione · strumenti · controllo di versione
Cos’è Git?
Se scrivi codice, incontrerai Git fin dal primo giorno. È lo strumento che quasi tutti i progetti software usano per tracciare le modifiche, e la base sotto GitHub, GitLab e il flusso di lavoro di sviluppo moderno. Questa guida spiega cos’è Git, la manciata di concetti che lo rendono evidente, perché conta e in cosa differisce da GitHub.
La definizione breve
Git è un sistema di controllo di versione distribuito: registra la cronologia delle modifiche di un insieme di file così che tu possa rivederla, ramificare, unire, collaborare e tornare indietro. Creato da Linus Torvalds nel 2005 per gestire il kernel Linux, è oggi lo standard di fatto. „Distribuito“ significa che ogni copia del progetto porta con sé la sua cronologia completa — puoi lavorare, fare commit e consultare la cronologia interamente offline.
I concetti fondamentali
- Repository (repo) — la cartella del progetto più tutta la sua cronologia, archiviate in una directory nascosta
.git. - Commit — un’istantanea salvata dei tuoi file in un dato istante, con un messaggio che descrive la modifica. La cronologia è una catena di commit.
- Branch (ramo) — un puntatore mobile che ti permette di sviluppare una funzionalità in modo isolato senza disturbare la linea principale (di solito
main). - Merge (fusione) — combinare le modifiche di un ramo in un altro.
- Remote (remoto) — una copia condivisa del repository ospitata altrove (ad es. su GitHub) verso cui fai
pushe da cui faipull.
Il flusso di lavoro quotidiano
Il ciclo che la maggior parte degli sviluppatori esegue decine di volte al giorno:
git clone <url> # copy a repository locally
# ...edit files...
git add . # stage the changes you want to save
git commit -m "Add login form" # save a snapshot with a message
git push # send your commits to the shared remote Per lavorare su qualcosa di nuovo senza rompere la linea principale, crei un ramo: git checkout -b my-feature, fai i commit lì, poi esegui un git merge (spesso tramite una pull request) di ritorno in main. Per recuperare il lavoro altrui, esegui git pull.
Perché Git conta
- Cronologia e annullamento — ogni modifica viene registrata, quindi puoi vedere chi ha cambiato cosa, quando e perché, e tornare indietro su un errore.
- Collaborazione — molte persone possono lavorare in parallelo sullo stesso progetto su rami diversi, poi unire in sicurezza.
- Sperimentazione sicura — crea un ramo, prova qualcosa, scartalo se fallisce — la linea principale resta intatta.
- È ovunque — l’open source, le aziende, le pipeline CI/CD e il deployment danno tutti per scontato Git.
Git vs GitHub
Vengono confusi di continuo. Git è lo strumento di controllo di versione che gira sulla tua macchina. GitHub (come GitLab o Bitbucket) è un servizio di hosting che archivia repository Git online e aggiunge funzionalità di collaborazione — pull request, issue, controllo degli accessi, CI. Puoi usare Git senza alcun account GitHub; GitHub è un luogo popolare dove collocare un remote Git, non Git stesso.
La curva di apprendimento onesta
Git è potente, e il suo insieme di comandi può sembrare disorientante all’inizio — i merge possono entrare in conflitto, e alcuni comandi possono riscrivere la cronologia in modi che sorprendono i principianti. La buona notizia: il 90 % del lavoro quotidiano usa solo clone, add, commit, push, pull e branch. Padroneggia questi e impara il resto (rebase, stash, reset) quando ne avrai davvero bisogno.
FAQ
Git è la stessa cosa di GitHub? No. Git è il software di controllo di versione sul tuo computer; GitHub è un servizio online che ospita repository Git e aggiunge strumenti di collaborazione. Git funziona senza GitHub.
Cos’è un commit? Un’istantanea salvata del tuo progetto in un dato istante, con un messaggio che descrive cosa è cambiato. La cronologia di un progetto è una sequenza di commit.
Bisogna usare la riga di comando? No — gli editor (VS Code) e i client grafici avvolgono Git, e la maggior parte degli IDE lo integra — ma la riga di comando è universale e vale la pena impararla, dato che ogni tutorial e ogni sistema di CI la parlano.
Cosa significa „distribuito“? Ogni clone di un repository Git contiene la cronologia completa, quindi puoi fare commit, ramificare e scorrere la cronologia offline. Non esiste una singola copia centrale da cui dipendere per lavorare.
Git traccia il codice; gli algoritmi e le API sono ciò che quel codice esprime. Sfoglia altre spiegazioni chiare nel nostro indice delle guide.