Se stai muovendo i primi passi nello sviluppo, avrai presto bisogno di uno strumento di controllo di versione.
In questo articolo trovi una guida chiara e pratica su Git: cosa fa, perché è utile fin da subito, come funziona sotto il cofano e come si usa nelle piattaforme più diffuse come GitHub, GitLab e Bitbucket.
Che cos’è Git
Git è un sistema di version control distribuito che registra nel tempo le modifiche al codice. A differenza di un semplice “salva file”, Git memorizza ogni commit (una foto dello stato del progetto) permettendoti di tornare indietro, confrontare versioni e lavorare in parallelo con altri sviluppatori attraverso i branch. In pratica, con git init trasformi una cartella in un repository in cui ogni cambiamento è tracciato in modo sicuro.
Vantaggi chiave:
- Storico completo delle modifiche, con autore, data e messaggio.
- Lavoro parallelo grazie ai branch: nessuno blocca nessuno.
- Esperimenti senza rischi: se qualcosa va storto, puoi tornare indietro.
- Collaborazione fluida con strumenti come
pull requestemerge.
Perché usare Git
Che tu sia da solo o in team, Git ti aiuta a evitare file dal nome infinito (tipo finale_finalissimo_v3) e a lavorare in modo professionale. Grazie a branch dedicati, puoi sviluppare una funzionalità senza toccare il codice stabile sul main. Inoltre, con repository remoti puoi sincronizzare il lavoro, fare backup e attivare automazioni (test, build, deploy).
Esempio reale: crei un branch per una feature, lo testi, apri una pull request, ricevi feedback, risolvi eventuali conflitti e poi unisci il tutto al ramo principale. Il ciclo è rapido, sicuro e tracciato.
Come funziona Git
Git lavora su tre aree: Working Directory (i tuoi file), Staging Area (cosa andrà nel prossimo commit) e Repository (la cronologia). Tipicamente esegui git add per selezionare i cambiamenti e git commit per salvarli nello storico, con un messaggio chiaro.
Installazione rapida (scegli il tuo sistema):
# macOS (Homebrew)
brew install git
# Ubuntu/Debian
sudo apt update
sudo apt install git
# Windows (winget)
winget install --id Git.Git -e --source winget
Configurazione essenziale (una volta sola): usa git config per impostare autore e preferenze.
git config --global user.name "Il Tuo Nome"
git config --global user.email "nome@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
# opzionale: usa VS Code per i messaggi
Concetti fondamentali di Git spiegati semplice
- Repository: la “cartella intelligente” che contiene file e cronologia.
- Commit: un pacchetto di modifiche con un messaggio, es.
git commit -m "Aggiunge login". - Branch: una linea di lavoro indipendente (es.
feature/login). - Merge: unisce il lavoro di un branch dentro un altro.
- Remote: la copia “in cloud” (GitHub/GitLab/Bitbucket) dove fai push e pull.
- .gitignore: indica a Git quali file non tracciare (cache, build, credenziali, ecc.).
Creare un nuovo repository e salvare le prime modifiche:
# 1) Inizializza
git init
# 2) Controlla lo stato
git status
# 3) Seleziona cosa salvare (staging)
git add .
# 4) Crea il commit con un messaggio chiaro
git commit -m "Inizializza progetto"
Per lavorare su una funzione senza toccare il codice stabile, crea un branch con git switch -c:
# Crea e passa al nuovo branch
git switch -c feature/pagina-profilo
# ...sviluppi, poi salvi
git add .
git commit -m "Implementa UI profilo"
# Torna su main e unisci la feature
git switch main
git merge feature/pagina-profilo
Un esempio di .gitignore minimale (adatta al tuo stack):
# Node
node_modules/
dist/
.env
# macOS
.DS_Store
# Editor
.vscode/ .idea/
Un workflow Git tipico, passo dopo passo
- Clona il progetto con
git clonee installa le dipendenze. - Crea un branch descrittivo:
git switch -c feature/nome-funzionalita. - Fai commit piccoli e frequenti con messaggi significativi.
- Apri una pull request, chiedi review, risolvi feedback e conflitti.
- Merge su main, poi tagga una versione se necessario.
Esempio di automazione personale:
commit_all() {
git add .
if git diff --cached --quiet; then
echo "Nessun cambiamento in staging."
return 0
else
git commit -m "Aggiorna lavoro corrente"
git push
fi
}
Git e le principali piattaforme di version control
Per collaborare e fare backup remoto userai quasi sempre un provider. La logica è semplice: con git remote add origin <URL> colleghi il tuo repo locale a un repository remoto, poi invii e ricevi modifiche con git push e git pull.
# Collega il repository locale a uno remoto (HTTPS come esempio)
git remote add origin https://example.com/utente/progetto.git
# Invia il branch 'main' al remoto 'origin'
git push -u origin main
# Sincronizza le modifiche dal remoto
git pull
GitHub: community, repository e automazioni
GitHub è la piattaforma più diffusa: eccelle per community, open source, gestione issue, pull request e GitHub Actions (CI/CD). È ideale per progetti pubblici, portfolio e collaborazione con flussi di review solidi. Per iniziare: crea un repo, attiva le branch protection rules sul ramo main e usa Actions per test automatici.
GitLab: DevOps integrato e CI/CD
GitLab offre un’esperienza DevOps end-to-end: dal codice all’issue tracking, dalla sicurezza al deployment, tutto integrato. Il file .gitlab-ci.yml definisce pipeline potenti e personalizzabili. È molto apprezzato in aziende che preferiscono self-hosting e controllo capillare.
Bitbucket: integrazione con l’ecosistema Atlassian
Bitbucket si integra nativamente con Jira e Confluence, facilitando il tracciamento di attività e documentazione tecnica. Le pipelines consentono CI/CD senza tool esterni. È una scelta naturale se il tuo team usa già l’ecosistema Atlassian.
Best practice rapide per lavorare meglio da subito:
- Scrivi messaggi di commit chiari: inizia con un verbo all’imperativo (“Aggiunge”, “Corregge”).
- Un branch per ogni feature o fix; evita “lavoroni” monolitici.
- Sincronizza spesso:
git pull --rebaseriduce i merge rumorosi. - Proteggi main con review obbligatoria e test automatici.
- Non committare segreti: usa variabili d’ambiente e .gitignore.
Con queste basi, Git diventa rapidamente il tuo alleato per progetti più ordinati, sicuri e scalabili. Inizia oggi creando un repository, definendo una routine di commit e sperimentando i branch: in poche sessioni ti sentirai già più veloce e professionale.