Introduzione a Git

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 request e merge.

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

  1. Clona il progetto con git clone e installa le dipendenze.
  2. Crea un branch descrittivo: git switch -c feature/nome-funzionalita.
  3. Fai commit piccoli e frequenti con messaggi significativi.
  4. Apri una pull request, chiedi review, risolvi feedback e conflitti.
  5. 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 --rebase riduce 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.

Corsi correlati

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.