Git & GitHub

Base

πŸ”€ Git & GitHub Β· Presentazione del Percorso

Git & GitHub πŸ™

Controllo di versione, collaborazione e automazione per la scuola e oltre
45 lezioni Β· 8 moduli Β· Dal primo commit alla CI/CD con GitHub Actions
Per studenti e insegnanti β€” nessun prerequisito tecnico richiesto.

πŸ‘‹ Di cosa parla questo percorso

Questo Γ¨ un percorso completo su Git (il sistema di controllo di versione piΓΉ usato al mondo) e GitHub (la piattaforma di collaborazione che ospita oltre 400 milioni di repository). Il percorso parte da zero β€” cos’Γ¨ un repository, come si fa un commit β€” e arriva fino ai workflow professionali: branching strategies, pull request, code review, GitHub Actions e CI/CD.

Il corso Γ¨ pensato per il mondo della scuola: studenti che vogliono imparare a lavorare in gruppo sul codice e costruire un portfolio, e insegnanti che vogliono gestire compiti, progetti e valutazioni con GitHub Classroom. Ma i contenuti sono solidi abbastanza da servire a chiunque parta da zero con Git.


🎯 A chi è rivolto

βœ… Perfetto per te se…

  • Sei uno studente (superiori, ITS, universitΓ ) e non hai mai usato Git
  • Lavori in gruppo su progetti scolastici e vi scambiate i file via WhatsApp o chiavetta
  • Vuoi costruire un portfolio professionale su GitHub
  • Sei un docente e vuoi assegnare, raccogliere e valutare compiti di programmazione in modo strutturato
  • Vuoi integrare GitHub Classroom nella tua didattica
  • Sei un autodidatta che vuole imparare Git da zero con un percorso progressivo

❌ Non fa per te se…

  • Usi giΓ  Git quotidianamente in un team di sviluppo
  • Cerchi un corso su Git internals (object model, packfiles, reflog avanzato)
  • Hai bisogno di amministrazione GitHub Enterprise o GitHub Server on-premise
  • Cerchi un corso su GitLab, Bitbucket o altri hosting
  • Sei giΓ  esperto di CI/CD e cerchi pipeline complesse multi-stage

Ma se parti da zero, questo percorso ti dΓ  le basi per arrivare a tutto quello sopra.


🧰 Cosa serve per seguire il percorso

πŸ’»
Un computer con Git installato
Windows, macOS o Linux β€” la Lezione 02 ti guida nell’installazione
🌐
Un account GitHub gratuito
Lo crei nella Lezione 13 β€” servono solo un’email e un browser
⏱️
45–90 minuti a lezione
Teoria + esercizi pratici sul terminale e su GitHub

Non serve saper programmare in nessun linguaggio specifico. Gli esercizi usano file di testo, Markdown e piccoli script, ma i concetti di Git si applicano a qualsiasi tipo di file e progetto. Le lezioni per insegnanti (Modulo 7) richiedono un account GitHub con accesso a GitHub Classroom (gratuito per i docenti).


πŸ—ΊοΈ Le 45 lezioni β€” panoramica

Il percorso Γ¨ organizzato in 8 moduli progressivi. I moduli 1–5 sono il tronco comune per tutti. Il modulo 6 Γ¨ dedicato agli studenti, il modulo 7 agli insegnanti, il modulo 8 Γ¨ per chi vuole approfondire.

🟒 MODULO 1 β€” Fondamenti di Git Β· Lezioni 01–06

Parti da zero. Alla fine sai creare un repository, fare commit, leggere la storia e annullare errori.

Lez.TitoloImpari
01Cos’Γ¨ il controllo di versionePerchΓ© serve, come funziona concettualmente, breve storia di Git. Versioning manuale vs automatico.
02Installazione e configurazioneInstallare Git su Windows/macOS/Linux. git config: nome, email, editor predefinito, colori.
03Il primo repositorygit init, git add, git commit. Il concetto di snapshot. La cartella .git.
04Il ciclo di lavoroWorking directory β†’ staging area β†’ repository. I tre stati di un file. git status in profonditΓ .
05Leggere la storiagit log (formati e filtri), git diff (working vs staging vs ultimo commit), git show.
06Annullare modifichegit restore, git reset (soft/mixed/hard), git revert. Quando usare quale. Errori comuni e come uscirne.

πŸ”΅ MODULO 2 β€” Branching e Merging Β· Lezioni 07–12

Sai fare commit. Ora impari a lavorare in parallelo con i branch e a ricombinare il lavoro.

Lez.TitoloImpari
07Cos’Γ¨ un branchIl modello a puntatori di Git. HEAD, branch come etichette mobili. PerchΓ© i branch Git sono leggeri.
08Creare, switchare, eliminare branchgit branch, git switch, git branch -d. Visualizzare i branch con git log --graph.
09Merge: fast-forward e three-wayQuando Git puΓ² fare fast-forward. Merge commit e come leggerlo. git merge in pratica.
10Gestire i conflitti di mergeCome nascono, come si presentano nel file, come risolverli. Marker <<< === >>>. Esercitazione pratica con conflitto simulato.
11RebaseDifferenza concettuale merge vs rebase. git rebase interattivo. Regola d’oro: mai rebase su branch pubblici.
12Strategie di branchingGit Flow, GitHub Flow, Trunk-based development. Pro e contro. Quale scegliere per un progetto scolastico.

🟠 MODULO 3 β€” GitHub: le basi Β· Lezioni 13–18

Sai usare Git in locale. Ora porti il tuo lavoro online e impari a collaborare.

Lez.TitoloImpari
13Account GitHub e autenticazioneCreare l’account. SSH key vs token HTTPS. Configurazione sicura. GitHub Student Developer Pack.
14Repository remotogit clone, git push, git pull, git fetch. Origin, upstream. Collegare un repo locale a GitHub.
15README, licenze e .gitignoreScrivere un buon README in Markdown. Scegliere una licenza. Creare e personalizzare .gitignore.
16GitHub IssuesCreare, assegnare, etichettare, chiudere issue. Referenziare issue nei commit. Template per issue.
17Pull RequestCreare una PR, descriverla, richiedere review. Merge di una PR. Differenza PR vs merge locale.
18Code ReviewBest practice per revisioni costruttive. Commenti inline, suggerimenti, approvazione. Cultura del feedback.

🟣 MODULO 4 β€” Collaborazione avanzata Β· Lezioni 19–24

Padroneggi le basi di GitHub. Ora impari i workflow professionali per team e progetti open source.

Lez.TitoloImpari
19Fork e open sourceFork vs clone. Contribuire a un progetto esterno. Upstream remote. Sincronizzare il fork.
20Branch protection e required reviewsProteggere il branch main. Richiedere review obbligatorie. Status check. CODEOWNERS.
21GitHub Projects e KanbanCreare un project board. Colonne, automazioni, filtri. Gestire il lavoro visivamente.
22Milestone e releasePianificare una release. Milestone, tag, versioning semantico. GitHub Releases e changelog.
23Discussions e WikiGitHub Discussions per domande e annunci. Wiki per documentazione di progetto.
24Template per Issue e PRCreare template riutilizzabili. Cartella .github. Form YAML per le issue. Template PR con checklist.

πŸ”΄ MODULO 5 β€” Automazione e CI/CD Β· Lezioni 25–30

Sai collaborare su GitHub. Ora automatizzi test, build e deploy con GitHub Actions.

Lez.TitoloImpari
25Introduzione a GitHub ActionsCos’Γ¨ la CI/CD. Workflow, job, step, runner. La cartella .github/workflows.
26Scrivere un workflow YAMLSintassi YAML per Actions. Trigger (on: push, on: pull_request). Primo workflow “Hello World”.
27CI: test automaticiEseguire test ad ogni push. Matrix strategy per testare su piΓΉ versioni. Badge di stato nel README.
28CD: deploy automaticoDeploy su GitHub Pages. Deploy su Vercel/Netlify. Trigger su tag e release.
29Linting e quality checkFormattazione automatica. Linting. Check di stile. Pre-commit hooks vs CI. Integrare ESLint, Prettier, Black.
30Secrets e variabili d’ambienteGestire credenziali in modo sicuro. Repository secrets. Environment variables. Ambienti di deploy.

🩡 MODULO 6 β€” Sezione Studenti Β· Lezioni 31–35

Lezioni dedicate agli studenti: workflow quotidiani, lavoro di gruppo e costruzione del portfolio.

Lez.TitoloImpari
31Setup dell’ambiente personaleConfigurare VS Code + Git. Estensioni utili. Terminale integrato. Alias Git per velocizzare il lavoro.
32Consegnare compiti via repositoryWorkflow pratico: accettare assignment β†’ clonare β†’ lavorare β†’ push β†’ consegnare. Deadline e commit history.
33Lavorare in gruppo con GitRuoli nel team: chi fa merge, chi revisiona. Branching per feature. Risolvere conflitti in gruppo. Comunicazione.
34Portfolio su GitHubProfilo README. Pinned repositories. Contribution graph. Come presentarsi a un’azienda con GitHub.
35Errori comuni e come uscirneDetached HEAD, push rejected, merge hell, commit sul branch sbagliato. Guida di sopravvivenza pratica.

🟑 MODULO 7 β€” Sezione Insegnanti Β· Lezioni 36–41

Lezioni dedicate ai docenti: GitHub Classroom, valutazione automatica e gestione della classe.

Lez.TitoloImpari
36GitHub Classroom: setupCreare una classroom. Collegare l’organizzazione. Invitare studenti. Roster e identitΓ .
37Template repositoryCreare template per esercizi. Starter code. Struttura cartelle. File di istruzioni per lo studente.
38Autograding con ActionsConfigurare test automatici per la valutazione. Punteggio automatico. Feedback immediato allo studente.
39Monitorare il lavoroDashboard di Classroom. Commit history per studente. Insights. Individuare chi Γ¨ in difficoltΓ .
40Organizzazioni scolasticheCreare e gestire un’organizzazione GitHub per la scuola. Permessi, team, repository privati. GitHub Education.
41Progettare esercitazioni progressiveDal primo commit alla CI/CD: come strutturare un percorso di esercizi che cresce con le competenze dello studente.

⚫ MODULO 8 β€” Argomenti avanzati Β· Lezioni 42–45

Per chi vuole andare oltre: comandi potenti, sicurezza, API e automazioni custom.

Lez.TitoloImpari
42Stash, cherry-pick, bisectgit stash per mettere in pausa il lavoro. cherry-pick per prendere singoli commit. bisect per trovare il commit che ha introdotto un bug.
43Submodules e monorepoIncludere un repository dentro un altro. Pro e contro dei monorepo. Quando usare submodules.
44Signed commits e sicurezzaFirmare i commit con GPG/SSH. Verified badge. Dependabot. Code scanning. Secret scanning.
45GitHub API e automazioni customREST API e GraphQL di GitHub. Creare bot semplici. Webhook. Automatizzare workflow con script.

πŸ–₯️ Gli strumenti β€” cosa userai

Il percorso Γ¨ interamente pratico: ogni lezione include comandi da eseguire sul tuo computer. Ecco gli strumenti principali:

⌨️ Terminale e Git

  • Git dalla riga di comando (il modo universale)
  • Funziona su Windows (Git Bash), macOS (Terminal) e Linux
  • Tutti i comandi vengono spiegati passo per passo
  • Nessuna esperienza precedente con il terminale richiesta

🌐 GitHub

  • Interfaccia web per repository, issue, PR, Actions
  • GitHub Classroom per insegnanti
  • Account gratuito β€” nessun costo
  • Student Developer Pack con tool premium gratuiti

πŸ› οΈ Editor consigliato

  • Visual Studio Code (gratuito, multipiattaforma)
  • Integrazione Git nativa + estensioni
  • Terminale integrato per eseguire comandi Git
  • Funziona anche qualsiasi altro editor di testo

πŸ“ Come funziona ogni lezione

1. πŸ“– Teoria
Concetti spiegati con parole semplici, diagrammi e analogie concrete. Ogni comando viene motivato prima di essere introdotto.

2. πŸ’» Esempi guidati
Comandi da eseguire passo per passo sul tuo terminale, con output atteso e spiegazione di ogni riga.

3. πŸ‹οΈ Esercizi
Sfide pratiche con difficoltΓ  crescente, da eseguire sul tuo computer in autonomia.

4. ❓ Quiz
Domande rapide di verifica con risposte nascoste per l’autovalutazione.

πŸ’‘ Consiglio: tieni il terminale aperto accanto al browser mentre leggi. Ogni volta che vedi un comando, eseguilo subito. Imparare Git Γ¨ come imparare a guidare: leggere il manuale non basta, devi mettere le mani sulla tastiera.


❓ Domande frequenti

Devo sapere programmare per seguire il corso?

Mostra risposta

No. Git gestisce qualsiasi tipo di file β€” testo, codice, immagini, documenti. Gli esercizi usano file di testo e Markdown, quindi non serve conoscere nessun linguaggio di programmazione. Ovviamente, se programmi, Git diventa ancora piΓΉ utile: potrai versionare i tuoi progetti e collaborare sul codice con i compagni.


Devo seguire le lezioni in ordine?

Mostra risposta

Fortemente consigliato per i moduli 1–3: ogni lezione costruisce sulle precedenti. Dal modulo 4 in poi c’Γ¨ piΓΉ flessibilitΓ . I moduli 6 (studenti) e 7 (insegnanti) si possono seguire indipendentemente l’uno dall’altro, ma richiedono i moduli 1–3 come base. Il modulo 8 Γ¨ opzionale e richiede i moduli 1–5.


Git e GitHub sono la stessa cosa?

Mostra risposta

No, e la confusione Γ¨ normale all’inizio. Git Γ¨ il software di controllo versione che gira sul tuo computer β€” funziona anche senza Internet. GitHub Γ¨ un servizio web che ospita i tuoi repository Git online e aggiunge strumenti di collaborazione (issue, pull request, Actions). Puoi usare Git senza GitHub, ma non puoi usare GitHub senza Git. La Lezione 01 chiarisce questa distinzione in dettaglio.


Quanto tempo serve per completare tutto il percorso?

Mostra risposta

Ogni lezione richiede 45–90 minuti tra teoria, esercizi pratici e quiz. Con 45 lezioni, il percorso completo richiede circa 35–40 ore di lavoro attivo. Puoi seguirlo al tuo ritmo: una lezione a settimana per un anno scolastico, oppure piΓΉ lezioni a settimana se vuoi accelerare. I moduli 6 e 7 sono alternativi (scegli il tuo profilo), quindi in pratica sono circa 39 lezioni per studenti e 39 per insegnanti.


Posso usare GitHub Desktop invece della riga di comando?

Mostra risposta

Il corso insegna Git dalla riga di comando perchΓ© Γ¨ il metodo universale: funziona ovunque, non dipende da nessuna interfaccia grafica e ti dΓ  il controllo completo. Una volta che capisci i comandi, passare a GitHub Desktop, VS Code o qualsiasi altro client grafico Γ¨ banale β€” troverai le stesse operazioni dietro pulsanti e menu. Il contrario (partire dalla GUI e poi passare al terminale) Γ¨ molto piΓΉ difficile.


Sono un insegnante: devo seguire anche i moduli per studenti?

Mostra risposta

I moduli 1–5 sono il tronco comune e vanno seguiti da tutti. Il modulo 6 (studenti) Γ¨ utile anche per i docenti perchΓ© mostra il workflow dal punto di vista dello studente β€” sapere come lavorano i tuoi studenti ti aiuta a progettare esercitazioni migliori. Il modulo 7 Γ¨ specifico per docenti e copre GitHub Classroom, autograding e gestione della classe. Il nostro consiglio: segui tutto, ma dai la prioritΓ  ai moduli 1–3 e poi al modulo 7.

Iniziamo! β†’

Lezione 01 β€” Cos’Γ¨ il controllo di versione
PerchΓ© serve, come funziona, breve storia di Git
e la tua prima comprensione di cosa significa “versionare” il lavoro.

Corso Git & GitHub Β· Per studenti e insegnanti Β· 45 lezioni Β· 8 moduli

Programma del Percorso β€” 35 lezioni

⏱️ Durata stimata: 45–60 min πŸ“Š Livello: Base (Modulo 1) πŸ”§ Strumenti: Nessuno β€” solo lettura e comprensione πŸ“‹ Prerequisiti: Nessuno πŸ’‘ Hai mai rinominato un file relazione_v2_FINALE_definitiva_VERA.docx? Allora hai giΓ  fatto controllo di versione β€” nel modo peggiore possibile. Questa lezione ti mostra perchΓ© esiste un modo migliore, come funziona concettualmente, e perchΓ© Git […]

Altri Percorsi