In breve
Git salva ogni versione del tuo lavoro, ti fa tornare indietro quando qualcosa si rompe e ti permette di collaborare senza sovrascrivere il lavoro degli altri. Qui parti da zero fino a GitHub.
Git è il sistema più usato al mondo per tenere traccia delle modifiche a codice e file di progetto. Ti permette di salvare ogni versione del tuo lavoro, tornare indietro quando qualcosa si rompe e collaborare con altre persone senza sovrascrivere il lavoro a vicenda.
In questo Git tutorial parti da zero: installi Git, crei il tuo primo repository, impari i comandi fondamentali, lavori con i branch e pubblichi il progetto su GitHub. Alla fine trovi un riepilogo dei comandi da tenere a portata di mano.
Cos'è Git e perché si usa
Git è un sistema di controllo di versione: registra ogni modifica ai file di un progetto, chi l'ha fatta e quando. È stato creato nel 2005 da Linus Torvalds, lo stesso autore di Linux, ed è gratuito e open source.
Senza Git
progetto_finale.txt
progetto_finale_v2.txt
progetto_finale_DAVVERO.txt
Con Git
Un solo progetto e una storia completa di tutte le versioni.
Si usa per tre motivi principali:
- tornare indietro: se una modifica rompe qualcosa, recuperi la versione precedente in un attimo;
- lavorare in parallelo: puoi sperimentare una nuova funzione senza toccare la versione che funziona;
- collaborare: più persone lavorano sullo stesso progetto e Git le aiuta a unire il lavoro.
Non lo usano solo i programmatori: nel cloud e nel DevOps si versionano con Git anche le configurazioni e l'infrastruttura.
Git e GitHub: qual è la differenza
È la confusione più comune per chi inizia:
Git
Lo strumento che installi sul tuo computer e che tiene la storia del progetto.
GitHub
Un servizio online dove pubblichi i tuoi repository Git, li condividi e collabori. Alternative simili sono GitLab e Bitbucket.
Installare e configurare Git
Scarica Git dal sito ufficiale per Windows o macOS; su Linux si installa dal gestore di pacchetti. Poi apri il terminale e verifica l'installazione:
git --versionConfigura nome ed email, che compariranno in ogni modifica che salvi:
git config --global user.name "Mario Rossi"
git config --global user.email "mario.rossi@email.it"
git config --global init.defaultBranch mainL'ultima riga imposta main come nome del ramo principale, lo stesso usato di default da GitHub.
I concetti base di Git
| Concetto | Cos'è |
|---|---|
| Repository (repo) | La cartella del progetto con tutta la sua storia |
| Commit | Una "fotografia" del progetto in un momento preciso, con un messaggio che descrive la modifica |
| Staging area | La zona di preparazione dove scegli quali modifiche includere nel prossimo commit |
| Branch | Un ramo di sviluppo separato, per lavorare senza toccare la versione principale |
| Merge | L'unione di un branch in un altro |
| Remote | Una copia del repository su un server, per esempio su GitHub |
Il flusso di base è sempre lo stesso:
Git tutorial passo passo: il tuo primo repository
Crea una cartella e trasformala in un repository Git:
mkdir primo-progetto
cd primo-progetto
git initCrea un file e controlla lo stato del repository:
echo "Il mio primo progetto con Git" > README.md
git statusGit ti dice che c'è un file nuovo, non ancora tracciato. Aggiungilo alla staging area e crea il primo commit:
git add README.md
git commit -m "Aggiunge il README iniziale"Per vedere la storia del progetto:
git log --onelineOgni volta che fai una modifica significativa, ripeti il ciclo: git add, poi git commit con un messaggio chiaro.
Lavorare con i branch
I branch ti permettono di sviluppare qualcosa di nuovo senza rischiare di rompere la versione principale. Crea un nuovo branch e spostati su di esso:
git switch -c nuova-sezioneFai le tue modifiche e i tuoi commit. Quando sei soddisfatto, torna sul ramo principale e unisci il lavoro:
git switch main
git merge nuova-sezioneSe due persone hanno modificato la stessa riga dello stesso file, Git segnala un conflitto: ti mostra entrambe le versioni e ti chiede di scegliere quella corretta. Sembra complicato la prima volta, ma è normale amministrazione.
Collegare il repository a GitHub
Crea un repository vuoto su GitHub, poi collegalo a quello locale e invia i tuoi commit:
git remote add origin https://github.com/tuo-utente/primo-progetto.git
git push -u origin mainAltri due comandi che userai spesso:
git clone https://github.com/utente/progetto.git # scarica un repository esistente
git pull # aggiorna la tua copia con le ultime modificheIl file .gitignore
Non tutto va salvato nel repository. File temporanei, cartelle di dipendenze e soprattutto password e chiavi di accesso devono restare fuori. Per escluderli crei un file chiamato .gitignore nella cartella del progetto:
.env
*.log
node_modules/
.terraform/
*.tfstateGit ignorerà automaticamente tutto ciò che è elencato. Per chi lavora con Terraform, escludere i file di stato è fondamentale, come spiego nella guida su Terraform.
Ti piacerebbe lavorare nel cloud o nel DevOps?
Fai il quiz gratuito di 2 minuti: 9 domande per capire se hai la predisposizione giusta per un lavoro nel cloud.
Fai il quiz gratuitoUn esercizio per fare pratica
Leggere una guida a Git non basta: serve usarlo. Ecco un esercizio da fare in mezz'ora:
Crea un repository con un file README.md che descrive un tuo progetto immaginario.
Fai almeno cinque commit piccoli, ognuno con un messaggio chiaro.
Crea un branch, aggiungi una nuova sezione al README e uniscilo al ramo principale.
Crea un conflitto di proposito, modificando la stessa riga su due branch diversi, e risolvilo.
Pubblica il repository su GitHub.
Quando riesci a farlo senza guardare gli appunti, hai le basi per usare Git in qualsiasi progetto.
I comandi Git da sapere
| Comando | A cosa serve |
|---|---|
| git init | Crea un nuovo repository |
| git status | Mostra lo stato dei file |
| git add <file> | Aggiunge un file alla staging area |
| git commit -m "messaggio" | Salva le modifiche con un messaggio |
| git log --oneline | Mostra la storia dei commit |
| git switch -c <nome> | Crea un branch e ci si sposta |
| git merge <branch> | Unisce un branch in quello attuale |
| git remote add origin <url> | Collega un repository remoto |
| git push | Invia i commit al repository remoto |
| git pull | Scarica e integra le modifiche remote |
| git clone <url> | Copia un repository esistente |
| git restore <file> | Annulla le modifiche non salvate a un file |
Gli errori più comuni da principiante
Salvare password o chiavi nel repository
È l'errore più pericoloso: se il repository è pubblico, chiunque può leggerle, e ci sono programmi automatici che le cercano di continuo. Usa sempre il .gitignore, e se succede, cambia subito le credenziali.
Fare commit enormi
Un commit con cento modifiche diverse è impossibile da capire e da annullare. Meglio tanti commit piccoli, ognuno con un solo scopo.
Scrivere messaggi inutili
"Modifiche" o "fix" non dicono niente. Scrivi cosa hai fatto: "Aggiunge la configurazione della rete".
Lavorare sempre sul ramo principale
Per ogni nuova funzione crea un branch: se qualcosa va storto, la versione principale resta intatta.
Git nel lavoro cloud e DevOps
Git è una competenza di base per quasi ogni ruolo tecnico. Nel cloud e nel DevOps si usa per:
- versionare il codice dell'infrastruttura, per esempio i file Terraform;
- avviare in automatico le pipeline CI/CD, che testano e rilasciano il codice a ogni commit;
- costruire il portfolio: i tuoi progetti su GitHub sono spesso la prima cosa che un selezionatore guarda.
Trovi il percorso completo nella guida su come diventare cloud engineer e il ruolo di Git nelle pipeline nella guida sul DevOps engineer.
Domande frequenti
Git è gratis?
Sì, Git è gratuito e open source. Anche GitHub offre un piano gratuito sufficiente per i progetti personali e per il portfolio.
Git per principianti: da dove iniziare?
Dai quattro comandi del flusso base: git init, git add, git commit e git log. Usali su un progetto personale per qualche giorno, poi aggiungi branch e GitHub. È esattamente l'ordine seguito in questa guida.
Git è difficile da imparare?
I comandi base si imparano in un pomeriggio. Branch, merge e gestione dei conflitti richiedono qualche settimana di pratica. La cosa importante è usarlo tutti i giorni, anche per piccoli progetti.
Devo usare per forza il terminale?
No, esistono interfacce grafiche e molti editor, come Visual Studio Code, hanno Git integrato. Imparare i comandi da terminale, però, ti aiuta a capire cosa succede davvero ed è ciò che ti chiederanno nei colloqui tecnici.
Come annullo l'ultimo commit?
Se non l'hai ancora inviato su GitHub, git reset --soft HEAD~1 annulla il commit mantenendo le modifiche. Se l'hai già inviato, è più sicuro usare git revert, che crea un nuovo commit che annulla il precedente senza riscrivere la storia.
Meglio GitHub o GitLab?
Per il portfolio personale GitHub è la scelta più comune. In azienda troverai entrambi: i comandi Git sono identici, cambia solo il servizio online.
In sintesi
- 1Git tiene traccia di tutte le versioni di un progetto e permette di collaborare senza perdere lavoro.
- 2GitHub è il servizio online dove pubblichi i repository, ed è anche la tua vetrina professionale.
- 3Il flusso di base è: modifica, git add, git commit, e poi git push per inviare su GitHub.
- 4I branch ti permettono di sperimentare senza rompere la versione principale.
- 5Non salvare mai password o chiavi nel repository: usa il .gitignore.
Vuoi capire se lavorare nel cloud o nel DevOps fa per te?
Fai il quiz gratuito di 2 minuti prima di investire tempo o soldi.
Fai il quiz gratuitoContinua a esplorare
Vuoi capire se questo percorso fa per te?
Il quiz gratuito richiede due minuti e ti aiuta a capire se una carriera nel cloud è adatta al tuo punto di partenza.
Fai il quiz gratuito