Lezione 2 di 35

Git 02

🔀 Git & GitHub · Modulo 1 · Lezione 02

Installazione e configurazione ⚙️

Installare Git su Windows e macOS · git config · Nome, email, editor · Verifica dell’installazione

⏱️ Durata stimata: 45–60 min 📊 Livello: Base (Modulo 1) 🔧 Strumenti: Connessione Internet · Terminale 📋 Prerequisiti: Lezione 01

🔧 Prima di costruire, prepara gli attrezzi. In questa lezione installi Git sul tuo computer, configuri la tua identità (nome e email che appariranno in ogni commit) e verifichi che tutto funzioni. Alla fine avrai un terminale pronto per creare il tuo primo repository nella Lezione 03.

🎯 Obiettivi della lezione

  • Installare Git su Windows o macOS
  • Aprire il terminale corretto per il tuo sistema operativo
  • Verificare che Git sia installato e funzionante
  • Configurare nome e email con git config
  • Scegliere e configurare l’editor predefinito
  • Capire la differenza tra configurazione locale e globale
  • Visualizzare e verificare la configurazione attiva

📖 1. Teoria

1.1 — Cos’è il terminale (e perché serve)

Git si usa principalmente dalla riga di comando — un’interfaccia testuale dove scrivi comandi e premi Invio. Si chiama anche terminale, console o shell. Può sembrare intimidatorio all’inizio, ma è il modo più potente e universale di usare Git: funziona identicamente su tutti i sistemi operativi, è quello che trovi nelle guide, nei tutorial e nella documentazione ufficiale.

🪟 Windows
Windows non ha un terminale Unix nativo. Quando installi Git, ottieni Git Bash: un terminale che parla la stessa lingua di macOS e Linux. Lo userai per tutto il corso.
Come aprirlo: tasto destro sulla scrivania → “Open Git Bash here”. Oppure: menu Start → cerca “Git Bash”.
🍎 macOS
macOS ha già un terminale Unix integrato: l’app Terminale (o Terminal). Git potrebbe essere già pre-installato oppure viene installato come parte degli Xcode Command Line Tools.
Come aprirlo: Spotlight (⌘ + Spazio) → scrivi “Terminal” → Invio. Oppure: Applicazioni → Utility → Terminal.

📌 Terminale vs interfaccia grafica: esistono interfacce grafiche per Git (GitHub Desktop, VS Code, SourceTree). Le vedremo nella Lezione 31. Per ora usiamo il terminale perché: (1) i comandi sono identici su tutti i sistemi, (2) ogni tutorial online usa il terminale, (3) capire i comandi ti rende indipendente da qualsiasi tool grafico. Quando sai usare la riga di comando, passare alla GUI è banale — il contrario no.

1.2 — Installare Git su Windows

PASSO 1
Vai su git-scm.com e clicca il pulsante di download per Windows. Il sito rileva automaticamente il tuo sistema operativo e propone la versione giusta (64-bit).
PASSO 2
Esegui il file .exe scaricato. L’installer mostra molte schermate di opzioni. Per tutte puoi lasciare le impostazioni predefinite — sono sensate e adatte al nostro corso. Clicca “Next” fino alla fine e poi “Install”.
PASSO 3
Alla fine dell’installazione, spunta “Launch Git Bash” e clicca “Finish”. Si apre una finestra nera con un cursore lampeggiante — è il tuo terminale Git Bash. Sei pronto.
Le schermate dell’installer — cosa significano
Schermata: “Adjusting your PATH environment”
Lascia l’opzione predefinita: “Git from the command line and also from 3rd-party software”. Questo permette di usare Git sia da Git Bash che da PowerShell, cmd e VS Code.
Schermata: “Choosing the default editor”
Predefinito: Vim (difficile per i principianti). Cambia in “Use Visual Studio Code as Git’s default editor” se hai VS Code installato. Altrimenti scegli Notepad++ o Nano.
Schermata: “Configuring the line ending conversions”
Lascia il predefinito: “Checkout Windows-style, commit Unix-style line endings”. Converte automaticamente i caratteri di fine riga — evita problemi quando lavori con utenti macOS.
Schermata: “Configuring the terminal emulator”
Lascia il predefinito: “Use MinTTY”. È il terminale di Git Bash — più comodo e leggibile del classico cmd.exe di Windows.

⚠️ Errore comune su Windows: non usare il Prompt dei Comandi (cmd.exe) o PowerShell per seguire questo corso. Usa Git Bash: i comandi di navigazione (cd, ls, mkdir) funzionano come su macOS, e tutti gli esempi del corso sono compatibili. Se usi cmd.exe, alcuni comandi saranno diversi e potresti avere problemi con i percorsi dei file.

1.3 — Installare Git su macOS

Su macOS hai due strade. La più semplice è provare a usare Git — se non è installato, macOS ti propone automaticamente di installarlo.

Metodo 1 — Xcode Command Line Tools (consigliato)
PASSO 1
Apri Terminal (Spotlight → “Terminal” → Invio).
PASSO 2
Scrivi git --version e premi Invio. Se Git è già installato, vedrai la versione. Se non è installato, macOS apre automaticamente un popup che ti propone di installare gli Xcode Command Line Tools. Clicca “Installa” e aspetta (può richiedere alcuni minuti).
PASSO 3
A installazione completata, riscrivi git --version. Dovresti vedere qualcosa come git version 2.39.5 (Apple Git-154). Fatto!
Metodo 2 — Homebrew (per chi vuole la versione più aggiornata)
PASSO 1
Se hai Homebrew installato (gestore di pacchetti per macOS), basta aprire Terminal e scrivere: brew install git
PASSO 2
Se non hai Homebrew, puoi installarlo seguendo le istruzioni su brew.sh — ma non è necessario per questo corso. Il Metodo 1 è sufficiente.

📌 Quale versione di Git serve? Qualsiasi versione dalla 2.23 in su è ottima (la 2.23 ha introdotto git switch e git restore, che useremo nel corso). Se hai una versione più vecchia, aggiorna con il metodo appropriato per il tuo sistema. Per verificare: git --version.

1.4 — Verificare l’installazione

Indipendentemente dal sistema operativo, la verifica è la stessa. Apri il terminale (Git Bash su Windows, Terminal su macOS) ed esegui questi comandi:

$ git –version
git version 2.44.0

$ git help
usage: git [-v | –version] [-h | –help] [-C <path>] [-c <name>=<value>]
[–exec-path[=<path>]] [–html-path] [–man-path] …
Se vedi la versione e l’help senza errori, Git è installato correttamente. Se invece vedi “command not found”, l’installazione non è andata a buon fine — riprova dal passo 1.

1.5 — Navigazione base nel terminale

Prima di configurare Git, servono 5 comandi di navigazione. Funzionano identicamente su Git Bash (Windows) e Terminal (macOS):

Comando Cosa fa Esempio
pwd Mostra dove ti trovi (Print Working Directory) /home/studente
ls Elenca i file nella cartella corrente Desktop Documents Downloads
cd nome Entra nella cartella “nome” cd Desktop
cd .. Torna alla cartella superiore cd ..
mkdir nome Crea una nuova cartella mkdir mio-progetto
Non servono altri comandi per ora. Questi 5 ti bastano per tutto il Modulo 1. Suggerimento: usa il tasto TAB per l’autocompletamento dei nomi delle cartelle — risparmi tempo e eviti errori di battitura.

1.6 — git config: la tua identità

Ogni commit Git registra chi ha fatto la modifica. Prima di fare qualsiasi commit, devi dire a Git come ti chiami e qual è la tua email. Queste informazioni vengono salvate in ogni commit che fai — sono la tua “firma digitale”.

# Imposta il tuo nome (apparirà in ogni commit)
$ git config –global user.name “Mario Rossi”

# Imposta la tua email (usala poi anche per GitHub)
$ git config –global user.email “mario.rossi@email.it”

# Verifica che le impostazioni siano state salvate
$ git config –global user.name
Mario Rossi
$ git config –global user.email
mario.rossi@email.it
–global vs –local
--global salva l’impostazione per tutti i tuoi repository su questo computer. È quello che usi il 99% delle volte.

--local (o nessun flag) salva l’impostazione solo per il repository corrente. Utile se contribuisci a un progetto con un’email diversa (es. personale vs lavoro).
Dove vengono salvate?
Le impostazioni --global sono salvate in un file di testo nella tua home directory:

Windows: C:\Users\tuonome\.gitconfig
macOS: ~/.gitconfig

Le impostazioni --local sono in .git/config dentro ogni singolo repository.

⚠️ L’email conta: quando creerai un account GitHub (Lezione 13), usa la stessa email che hai configurato qui. Così GitHub riconoscerà i tuoi commit e li collegherà al tuo profilo. Se usi un’email diversa, i tuoi commit appariranno come fatti da uno sconosciuto.

1.7 — Configurare l’editor predefinito

Git apre un editor di testo in alcuni momenti — ad esempio quando fai un commit senza il flag -m, o durante un rebase interattivo. L’editor predefinito storico è Vim, notoriamente difficile per i principianti (la battuta ricorrente è: “Come uscire da Vim?” — ha milioni di ricerche su Google). Cambialo subito.

Editor Comando di configurazione Note
VS Code ⭐ git config –global core.editor “code –wait” Consigliato. Richiede VS Code installato. Il flag --wait dice a Git di aspettare che chiudi il file.
Nano git config –global core.editor “nano” Editor semplice nel terminale. Già presente su macOS e Git Bash. Per salvare: Ctrl+O, per uscire: Ctrl+X.
Notepad++ (Win) git config –global core.editor “‘C:/Program Files/Notepad++/notepad++.exe’ -multiInst -notabbar -nosession -noPlugin” Solo Windows. Richiede Notepad++ installato.
TextEdit (macOS) git config –global core.editor “open -e -W -n” L’editor di testo nativo di macOS. Funziona ma è basico.
# Esempio: imposta VS Code come editor
$ git config –global core.editor “code –wait”

# Verifica
$ git config –global core.editor
code –wait

📌 Se ti trovi bloccato in Vim: premi Esc, poi scrivi :q! e premi Invio. Questo chiude Vim senza salvare. Poi configura un editor diverso con il comando sopra.

1.8 — Altre configurazioni utili

Queste configurazioni non sono obbligatorie ma rendono l’esperienza più piacevole. Puoi copiarle e incollarle tutte nel terminale:

# Il branch predefinito si chiamerà “main” (standard moderno)
$ git config –global init.defaultBranch main

# Abilita i colori nel terminale (più leggibile)
$ git config –global color.ui auto

# Mostra i conflitti in modo più chiaro (tre sezioni invece di due)
$ git config –global merge.conflictstyle diff3

# Attiva il riuso automatico delle risoluzioni di conflitto
$ git config –global rerere.enabled true

# Abbreviazioni utili (alias)
$ git config –global alias.st status
$ git config –global alias.co checkout
$ git config –global alias.br branch
$ git config –global alias.lg “log –oneline –graph –all”
Configurazione Cosa fa Perché è utile
init.defaultBranch main Il primo branch si chiama “main” Standard moderno. GitHub usa “main” per default. Senza questa impostazione, Git crea “master”.
color.ui auto Output colorato Rosso per le righe cancellate, verde per quelle aggiunte — molto più leggibile.
merge.conflictstyle diff3 Conflitti con 3 sezioni Mostra la versione originale oltre alle due in conflitto — aiuta a capire cosa è successo.
alias.lg “log –oneline…” Scorciatoia: git lg Mostra la storia come un grafo compatto colorato — lo userai continuamente dalla Lezione 05.

1.9 — Visualizzare tutta la configurazione

Dopo aver impostato tutto, puoi vedere l’intera configurazione attiva con un solo comando:

$ git config –global –list
user.name=Mario Rossi
user.email=mario.rossi@email.it
core.editor=code –wait
init.defaultbranch=main
color.ui=auto
merge.conflictstyle=diff3
rerere.enabled=true
alias.st=status
alias.co=checkout
alias.br=branch
alias.lg=log –oneline –graph –all
Questo è il tuo “profilo Git”. Se qualcosa non è corretto, riesegui il comando git config corrispondente — sovrascrive il valore precedente.

💻 2. Esempi guidati

Esempio A — Setup completo da zero su Windows

  1. Scarica Git da git-scm.com. Esegui l’installer con tutte le opzioni predefinite (tranne l’editor: scegli VS Code o Nano).
  2. Apri Git Bash (tasto destro sulla scrivania → “Open Git Bash here”).
  3. Verifica l’installazione:
    git –version
    Output atteso: git version 2.4x.x.windows.x
  4. Configura la tua identità:
    git config –global user.name “Il Tuo Nome”
    git config –global user.email “tua@email.it”
    git config –global core.editor “code –wait”
    git config –global init.defaultBranch main
    git config –global color.ui auto
  5. Verifica tutto:
    git config –global –list
    Controlla che nome, email, editor e default branch siano corretti.
  6. Prova la navigazione:
    pwd
    ls
    mkdir test-git
    cd test-git
    pwd
    Dovresti trovarti in /c/Users/tuonome/Desktop/test-git (o simile). Sei pronto per la Lezione 03!

Esempio B — Setup completo da zero su macOS

  1. Apri Terminal (⌘ + Spazio → “Terminal” → Invio).
  2. Verifica se Git è già installato:
    git –version
    Se non è installato, macOS apre un popup → clicca “Installa” → attendi. Poi rilancia il comando.
  3. Configura la tua identità:
    git config –global user.name “Il Tuo Nome”
    git config –global user.email “tua@email.it”
    git config –global core.editor “code –wait”
    git config –global init.defaultBranch main
    git config –global color.ui auto
    Se non hai VS Code, usa "nano" come editor.
  4. Verifica tutto:
    git config –global –list
  5. Prova la navigazione:
    pwd
    ls
    cd Desktop
    mkdir test-git
    cd test-git
    pwd
    Dovresti trovarti in /Users/tuonome/Desktop/test-git. Sei pronto!

Esempio C — Correggere una configurazione sbagliata

  1. Hai sbagliato a scrivere il nome? Nessun problema — riesegui il comando:
    git config –global user.name “Nome Corretto”
    Sovrascrive il valore precedente. Verifica con git config --global user.name.
  2. Vuoi cancellare completamente una configurazione? Usa --unset:
    git config –global –unset alias.co
    Rimuove l’alias co dalla configurazione globale.
  3. Vuoi aprire il file di configurazione direttamente nell’editor?
    git config –global –edit
    Apre ~/.gitconfig nel tuo editor. Puoi modificare tutto a mano — è un semplice file di testo in formato INI.

🏋️ 3. Esercizi

🟢 Esercizio 1 — Installazione e verifica (Facile)

Segui l’Esempio A (Windows) o l’Esempio B (macOS) e completa l’installazione sul tuo computer. Alla fine, esegui questi 3 comandi e verifica che l’output sia corretto:

git –version → deve mostrare un numero di versione ≥ 2.23
git config –global user.name → deve mostrare il tuo nome
git config –global user.email → deve mostrare la tua email

Se uno di questi non funziona, rileggi la sezione corrispondente e riprova.

🔵 Esercizio 2 — Navigazione nel terminale (Facile)

Esegui questa sequenza di comandi e scrivi accanto ad ognuno cosa ti aspetti che succeda prima di premere Invio. Poi verifica:

a) cd ~
b) pwd
c) mkdir corso-git
d) cd corso-git
e) pwd
f) mkdir lezione-02
g) cd lezione-02
h) pwd
i) cd ..
j) pwd
k) ls

Domande: dopo il comando (h), in quale cartella ti trovi? Dopo il comando (j)? Cosa mostra il comando (k)?

🟠 Esercizio 3 — Configurazione personalizzata (Medio)

Completa queste attività di configurazione:

a) Configura tutti gli alias suggeriti nella sezione 1.8.
b) Verifica che funzionino: esegui git st (non darà errore, ma dirà “not a git repository” perché non sei dentro un repo — è normale e significa che l’alias funziona).
c) Crea un alias personalizzato: git config --global alias.last "log -1 HEAD". Questo mostrerà l’ultimo commit.
d) Apri il file di configurazione con git config --global --edit e osserva la struttura. Riesci a trovare la sezione [alias]?
e) Elenca la configurazione completa con git config --global --list e conta quante righe ci sono.

🟣 Esercizio 4 — global vs local (Difficile)

Questo esercizio richiede conoscenze dalla Lezione 03 (creare un repository). Se hai già provato git init, prova a completarlo ora. Altrimenti, tienilo da parte e torna dopo la Lezione 03.

a) Crea una cartella progetto-lavoro, entra e inizializza un repository con git init.
b) Imposta una configurazione locale con un’email diversa: git config user.email "mario@lavoro.it" (senza –global).
c) Verifica la configurazione locale: git config user.email → deve mostrare “mario@lavoro.it”.
d) Esci dalla cartella (cd ..) e crea un’altra cartella progetto-personale, inizializzala con git init.
e) Verifica l’email dentro questo repo: git config user.email → deve mostrare la tua email globale “mario.rossi@email.it”.
f) Spiega: perché i due repository mostrano email diverse? Quale ha la priorità, locale o globale?

❓ 4. Quiz di verifica

1. Su Windows, quale terminale devi usare per seguire questo corso?

Mostra risposta

Git Bash. Viene installato automaticamente insieme a Git. Lo trovi nel menu Start cercando “Git Bash” oppure con tasto destro su una cartella → “Open Git Bash here”. Non usare cmd.exe o PowerShell: i comandi di navigazione sono diversi e potresti avere problemi con i percorsi. Su macOS invece usi l’app Terminal nativa.


2. Qual è la differenza tra git config --global e git config --local?

Mostra risposta

--global salva l’impostazione nel file ~/.gitconfig della tua home directory — vale per tutti i repository sul tuo computer. --local salva l’impostazione nel file .git/config dentro uno specifico repository — vale solo per quel progetto. La configurazione locale ha la priorità su quella globale: se imposti un’email diversa in un repository, Git userà quella locale per i commit in quel repo, e quella globale per tutti gli altri.


3. Perché è importante configurare nome e email prima di fare il primo commit?

Mostra risposta

Perché ogni commit registra permanentemente chi l’ha fatto (nome e email dell’autore). Senza configurazione, Git usa valori predefiniti che potrebbero essere sbagliati o generici (come il nome utente del sistema operativo). Inoltre, quando creerai un account GitHub, l’email dei tuoi commit deve corrispondere a quella di GitHub — altrimenti i commit non saranno collegati al tuo profilo e sembreranno fatti da uno sconosciuto.


4. Cosa fa il comando git config --global alias.st status?

Mostra risposta

Crea una scorciatoia (alias): da quel momento in poi, scrivere git st è equivalente a scrivere git status. L’alias viene salvato nel file di configurazione globale e funziona in tutti i tuoi repository. Puoi creare alias per qualsiasi comando — ad esempio alias.lg "log --oneline --graph --all" ti permette di scrivere git lg per avere un log compatto e visuale.


5. Ti trovi bloccato dentro Vim dopo un git commit senza -m. Come esci?

Mostra risposta

Premi Esc per assicurarti di essere in modalità comando, poi scrivi :q! e premi Invio. Questo chiude Vim senza salvare e annulla il commit. Per evitare che succeda di nuovo, configura un editor diverso con git config --global core.editor "code --wait" (VS Code) o "nano" (editor semplice nel terminale). Da quel momento Git aprirà l’editor che hai scelto invece di Vim.


6. Qual è il comando per vedere tutta la configurazione globale di Git?

Mostra risposta

git config --global --list. Elenca tutte le impostazioni salvate nel file ~/.gitconfig. Per vedere una singola impostazione: git config --global user.name. Per vedere la configurazione effettiva di un repository (che combina global + local): git config --list dentro la cartella del repository. Per aprire il file direttamente nell’editor: git config --global --edit.


📚 Riepilogo della lezione

Cosa hai imparato oggi:
  • Windows: installa Git da git-scm.com → usa Git Bash come terminale
  • macOS: scrivi git --version → installa Xcode CLI Tools dal popup automatico
  • Navigazione base: pwd (dove sono) · ls (cosa c’è) · cd (entra) · cd .. (esci) · mkdir (crea cartella)
  • Identità obbligatoria: git config --global user.name e user.email
  • Editor: cambia Vim → VS Code (code --wait) o Nano
  • --global = tutti i repo · --local = solo il repo corrente · locale ha priorità
  • Configurazioni consigliate: init.defaultBranch main · color.ui auto · alias utili (st, co, br, lg)
  • Verifica tutto: git config --global --list

Prossima lezione →

Lezione 03 — Il primo repository
git init, git add, git commit.
Crei il tuo primo repo, fai il primo commit e scopri la cartella .git.

Corso Git & GitHub · Per studenti e insegnanti · Lezione 02 di 45