Concept: "Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency."
::: info
Il Modello Mentale di Git:
A differenza di altri sistemi, Git ragiona per Snapshot, non per differenze di file. Immagina Git come una serie di fotografie dell'intero progetto scattate nel tempo.
:::
Per usare Git correttamente, devi capire dove si trova il tuo codice in ogni momento:
git init: Inizializza un nuovo repository locale.git clone <url>: Copia un repository remoto esistente sul tuo PC.git config --global user.name "Your Name": Configura l'identità dell'autore.git status: Mostra lo stato dei file (quali sono modificati, quali in staging).git add <file>: Aggiunge un file alla Staging Area. Usa git add . per tutti.git commit -m "feat: add login logic": Crea uno snapshot permanente con un messaggio descrittivo.git log --oneline: Mostra la cronologia sintetica dei commit.git branch <name>: Crea un nuovo ramo (linea di sviluppo parallela).git checkout <name>: Passa al ramo specificato. (Moderno: git switch <name>).git merge <name>: Unisce il ramo specificato nel ramo corrente.git remote add origin <url>: Collega il repo locale a quello remoto.git push origin <branch>: Invia i tuoi commit locali sul server.git pull: Scarica le modifiche dal server e le unisce al tuo codice locale.Quando si lavora in team, non si scrive mai direttamente sul ramo principale (main o master). Si usa un processo chiamato Feature Branching.
È il metodo standard su GitHub, GitLab e Bitbucket.
feature/new-button), fai i commit e lo carichi sul server. Invece di unirlo tu, apri una "Pull Request".main sempre pronto per la produzione. Ogni modifica avviene in un ramo separato che viene unito dopo una PR.develop, release, hotfix e master. Ideale per progetti con cicli di rilascio programmati e rigidi.main) con commit piccoli e frequentissimi..gitignore per evitare di caricare file inutili (es. .venv, node_modules, chiavi API, file di log).feat: per nuove funzionalità.fix: per correzione bug.docs: per modifiche alla documentazione.git pull per assicurarti di avere l'ultima versione del codice ed evitare conflitti dell'ultimo minuto.Immaginiamo di dover aggiungere una nuova funzionalità chiamata "User Login". Ecco la sequenza esatta dei comandi da eseguire nel terminale.
Prima di iniziare, assicurati che il tuo codice locale sia identico a quello sul server.
git checkout main
git pull origin main
Crea un ramo isolato per il tuo lavoro. Non lavorare mai direttamente su main.
# Crea e passa al nuovo ramo
git checkout -b feature/user-login
Lavora al tuo codice, poi prepara e salva le modifiche localmente.
git add .
git commit -m "feat: implement user authentication logic"
Invia il tuo ramo locale al repository remoto (GitHub/Gitea).
git push origin feature/user-login
A questo punto, l'operazione si sposta sull'interfaccia web (es. GitHub, GitLab o il tuo Gitea):
Una volta che il codice è stato approvato e i test automatici (CI) sono passati:
feature/user-login viene unito a main.Dopo il merge, torna nel terminale per pulire l'ambiente locale.
# Torna sul main e scarica il codice appena unito
git checkout main
git pull origin main
# Elimina il ramo locale che non serve più
git branch -d feature/user-login
Tags: #GitWorkflow #PullRequest #CodeReview #TeamCollaboration*
git branch -d), fondamentale per non ritrovarsi con centinaia di rami obsoleti dopo pochi mesi.