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
🔧 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.
📌 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
.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”.⚠️ 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.
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).git --version. Dovresti vedere qualcosa come git version 2.39.5 (Apple Git-154). Fatto!brew install git📌 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 2.44.0
$ git help
usage: git [-v | –version] [-h | –help] [-C <path>] [-c <name>=<value>]
[–exec-path[=<path>]] [–html-path] [–man-path] …
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 |
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”.
$ 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 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).
--global sono salvate in un file di testo nella tua home directory:Windows:
C:\Users\tuonome\.gitconfigmacOS:
~/.gitconfigLe 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. |
$ 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:
$ 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:
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
💻 2. Esempi guidati
Esempio A — Setup completo da zero su Windows
- Scarica Git da git-scm.com. Esegui l’installer con tutte le opzioni predefinite (tranne l’editor: scegli VS Code o Nano).
- Apri Git Bash (tasto destro sulla scrivania → “Open Git Bash here”).
- Verifica l’installazione:
git –versionOutput atteso:git version 2.4x.x.windows.x - 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 - Verifica tutto:
git config –global –listControlla che nome, email, editor e default branch siano corretti. - Prova la navigazione:
pwdDovresti trovarti in
ls
mkdir test-git
cd test-git
pwd/c/Users/tuonome/Desktop/test-git(o simile). Sei pronto per la Lezione 03!
Esempio B — Setup completo da zero su macOS
- Apri Terminal (⌘ + Spazio → “Terminal” → Invio).
- Verifica se Git è già installato:
git –versionSe non è installato, macOS apre un popup → clicca “Installa” → attendi. Poi rilancia il comando. - Configura la tua identità:
git config –global user.name “Il Tuo Nome”Se non hai VS Code, usa
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"nano"come editor. - Verifica tutto:
git config –global –list - Prova la navigazione:
pwdDovresti trovarti in
ls
cd Desktop
mkdir test-git
cd test-git
pwd/Users/tuonome/Desktop/test-git. Sei pronto!
Esempio C — Correggere una configurazione sbagliata
- Hai sbagliato a scrivere il nome? Nessun problema — riesegui il comando:
git config –global user.name “Nome Corretto”Sovrascrive il valore precedente. Verifica congit config --global user.name. - Vuoi cancellare completamente una configurazione? Usa
--unset:
git config –global –unset alias.coRimuove l’aliascodalla configurazione globale. - Vuoi aprire il file di configurazione direttamente nell’editor?
git config –global –editApre~/.gitconfignel 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 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:
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:
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.
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
- 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.nameeuser.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 repositorygit 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