📝 BLOG

Git e Controllo Versione: Comandi Base e Workflow

Git è lo strumento fondamentale dello sviluppo software moderno. Questa guida copre i comandi base di Git, le strategie di branching e i workflow.

Ultimo aggiornamento:

Preparato da: Gsetsoft

Git e Controllo Versione: Comandi Base e Workflow

Cos'è Git e perché usarlo?

Git è un sistema di controllo versione distribuito. Traccia le modifiche del codice, gestisce diverse versioni e facilita la collaborazione in team.

Struttura distribuita: Ogni sviluppatore ha una copia completa del repository. Questo permette il lavoro offline e operazioni rapide.

Branching: Create branch separati per diverse funzionalità o correzioni. Questo mantiene il codice principale (main/master) sempre stabile.

Merge e rebase: Unite i branch nel branch principale. Merge preserva la cronologia dei commit. Rebase crea una cronologia lineare.

Comandi Base di Git

git init: Crea un nuovo repository. git clone <url>: Copia un repository esistente.

git add <file>: Aggiunge le modifiche all'area di staging. git add .: Aggiunge tutte le modifiche.

git commit -m "messaggio": Conferma le modifiche in staging. Scrivete messaggi di commit significativi.

git status: Verifica lo stato del repository. git log: Visualizza la cronologia dei commit.

git diff: Vede le differenze tra la directory di lavoro e l'area di staging. git diff --staged: Vede le differenze tra l'area di staging e l'ultimo commit.

Branching e Merging

git branch <name>: Crea un nuovo branch. git checkout <name> o git switch <name>: Passa al branch.

git merge <branch>: Unisce il branch nel branch corrente. Usa fast-forward merge o three-way merge.

Conflitto di merge: Risoluzione manuale richiesta per modifiche conflittuali. Modificate i file in conflitto, marcateli con git add, completate con git commit.

git branch -d <name>: Elimina il branch. git branch -D <name>: Forza l'eliminazione di un branch non unito.

Operazioni di Repository Remoto

git remote add origin <url>: Aggiunge repository remoto. git remote -v: Elenca i remotes.

git push origin <branch>: Invia le modifiche locali al remoto. git push -u origin main: Imposta il branch upstream.

git pull: Recupera e unisce le modifiche remote. git fetch: Recupera le modifiche remote (senza merge).

git push --force: Aggiorna forzatamente il branch remoto (usare con cautela). git push --force-with-lease: Force push più sicuro.

Strategie di Branching

Git Flow: main (produzione), develop (sviluppo), feature/* (nuove funzionalità), release/* (preparazione versione), hotfix/* (correzioni urgenti).

GitHub Flow: branch main + branch di funzionalità. Ogni branch di funzionalità viene unito a main tramite pull request. Semplice ed efficace.

Trunk-Based Development: Un unico branch main, branch di funzionalità di breve durata (1-2 giorni). Combinato con integrazione continua (CI/CD).

Criteri di selezione: Git Flow per progetti grandi, GitHub Flow per progetti piccoli-medi, Trunk-Based Development per team con CI/CD maturo.

Migliori Pratiche

Messaggi di commit: Usate modo imperativo ('Add feature' non 'Added feature'). Limitate la prima riga a 50 caratteri, i dettagli a 72 caratteri.

Commits atomici: Ogni commit dovrebbe contenere una sola modifica. Dividete le modifiche grandi in commit piccoli.

Nomenclatura dei branch: Usate nomi descrittivi come feature/user-authentication, bugfix/login-error, hotfix/security-patch.

.gitignore: Ignorate i file inutili (node_modules, .env, build/). Usate i template gitignore di GitHub.

Pull request: Usate le pull request per la revisione del codice. Ogni modifica dovrebbe essere revisionata da almeno una persona.

Strumenti correlati

La tua scelta sulla privacy

I cookie essenziali gestiscono sicurezza e sessioni. Contiamo le visite di base; con il consenso attiviamo analisi aggiuntive. Informativa cookie