Version Control con Git
Git è lo strumento di collaborazione più usato nello sviluppo web. Impararlo bene — non solo i comandi base, ma i workflow — riduce i conflitti, accelera il debugging e rende il team autonomo.
Branching strategy
La scelta tra strategie dipende dalla cadenza delle release:
- Trunk-based development: tutti committano su
main, feature flag per il lavoro in corso. Più rapido, richiede test automatici solidi. - Gitflow: branch
feature/,release/ehotfix/separate. Più strutturato, adatto a release cicliche con versioni numerate.
Conventional Commits
Il formato Conventional Commits rende la storia del repository leggibile da umani e strumenti automatici:
feat: aggiunta autenticazione OAuth fix: corretto errore CORS in produzione docs: aggiornata guida all’installazione refactor: estratta funzione di validazione chore: aggiornate dipendenze npm
I prefissi standard permettono di generare automaticamente changelog e determinare il tipo di versione da rilasciare (semver).
Pull Request workflow
Una PR efficace: branch dedicata, modifiche piccole e coese (max 400 righe), descrizione che spiega il perché non il cosa, almeno un reviewer. Le PR grandi rallentano la review e aumentano il rischio di conflitti.
Comandi avanzati utili
git bisect— trova il commit che ha introdotto un bug con ricerca binariagit stash— metti da parte modifiche non finite per cambiare branchgit rebase -i— pulizia della storia prima del mergegit worktree— lavora su più branch contemporaneamente in directory separate
Monorepo vs Polyrepo
I monorepo facilitano la condivisione di codice e la visibilità cross-team. I polyrepo danno più autonomia e confini chiari. Turborepo e Nx sono i tool principali per gestire monorepo JavaScript con build incrementali.
La storia di Git è la documentazione del progetto. Trattala come tale: commit chiari, messaggi che spiegano il perché.
Il version control è il fondamento su cui si costruisce la pipeline di DevOps e deploy automatizzato: senza una storia pulita è difficile fare rollback sicuri. Per la configurazione dell’ambiente locale, l’articolo sugli editor e IDE mostra come integrare Git nel flusso di lavoro. La struttura del repository riflette anche la gestione del progetto.