Git e GitHub: guida completa a installazione, versionamento e collaborazione professionale | Prof. Giagnotti
PROF GIAGNOTTI · TORNA A → · GUIDE
🗺 GUIDE TOOL E AMBIENTI DI LAVORO · GIT & GITHUB
A cura del Prof. Giagnotti · Docente di Informatica e Sistemi e Reti

Git e GitHub: guida completa a installazione, versionamento e collaborazione professionale

Dalla teoria del controllo versione distribuito alla pratica quotidiana: installare Git su Windows, macOS e Linux, configurarlo con VS Code, eseguire il primo commit e push, clonare repository, gestire fork, pull request, issue e Project Board, fino agli strumenti avanzati come .gitignore, tag e GitHub Pages.

⏱️ 22 min di lettura 🟡 Livello: Principiante → Intermedio 🧰 Tool: Git · GitHub · VS Code
🎯 Obiettivi della guida
✓Capire cosa sono Git e GitHub, come differiscono e perché il versionamento è indispensabile.
✓Installare Git su Windows, macOS e Linux e configurare nome, email, colori ed editor.
✓Creare un account GitHub, un nuovo repository e collegarlo al progetto locale con il primo push.
✓Padroneggiare i comandi base: init, status, add, commit, push, pull, clone, log.
✓Collaborare: fork, pull request, issue, Project Board e flusso tipico professionale.

1. Introduzione

Nel mondo dello sviluppo software moderno, la gestione efficace del codice sorgente è una competenza imprescindibile. Strumenti come Git e piattaforme collaborative come GitHub rappresentano lo standard di riferimento per il versionamento e la collaborazione nei progetti di qualsiasi dimensione, dal piccolo progetto personale fino al software enterprise.

In questo articolo approfondiremo cosa sono Git e GitHub, comprenderemo le loro differenze e analizzeremo l’importanza del versionamento nel ciclo di vita del software. È il punto di partenza che useremo in tutte le attività di laboratorio da qui in avanti.

2. Cos'è Git

📌 Definizione da ricordare

Git è un sistema di controllo versione distribuito (DVCS) creato da Linus Torvalds nel 2005 per supportare lo sviluppo del kernel Linux.

Le principali caratteristiche di Git sono:

  • Velocità di esecuzione: quasi tutte le operazioni sono locali, quindi immediate
  • Distribuzione: ogni sviluppatore possiede una copia completa del repository con tutta la storia
  • Integrità: ogni cambiamento viene tracciato con checksum sicuri
  • Branching rapido: creare e fondere rami è leggerissimo e quotidiano

In altre parole, Git consente di tenere traccia delle modifiche, ripristinare versioni precedenti e lavorare in parallelo su funzionalità diverse senza interferire con gli altri.

3. Il concetto di Versionamento del Codice

Il versionamento è il processo attraverso cui gestiamo le modifiche al codice nel tempo. Un sistema di controllo versione consente di:

  • Salvare “istantanee” del progetto in momenti diversi
  • Esplorare o ripristinare versioni precedenti
  • Gestire più linee di sviluppo tramite branch
  • Coordinare il lavoro di più sviluppatori contemporaneamente
⚠️ Senza controllo versione

Ogni modifica rischierebbe di sovrascrivere irreversibilmente il lavoro precedente, aumentando notevolmente rischio di errori e perdite di dati. È come scrivere una tesina senza mai fare salva con nome.

4. Cos'è GitHub

GitHub è una piattaforma web che offre hosting per repository Git. Oltre a consentire il semplice salvataggio online, introduce funzionalità avanzate come:

  • Collaborazione tramite fork, pull request e revisioni
  • Gestione di problemi e attività tramite Issue e Projects
  • Automazione di processi (test automatici, CI/CD con Actions)
  • Pubblicazione di siti statici tramite GitHub Pages

Nato nel 2008, è oggi il servizio di hosting Git più popolare al mondo ed è stato acquisito da Microsoft nel 2018.

5. Differenze tra Git e GitHub

CaratteristicaGitGitHub
TipologiaStrumento localeServizio web remoto
FunzionalitàControllo versioneHosting, collaborazione, gestione, CI
InternetNoSì (per accesso remoto)
ProprietàOpen-source, gratuitoProprietario (Microsoft), piano free e pro
🎯 In sintesi

Git è lo strumento che usiamo localmente per versionare; GitHub è la piattaforma che ci consente di archiviare online e collaborare con altri. Uno sta sul tuo PC, l'altra sta su Internet.

6. Perché imparare Git e GitHub

Oggi la conoscenza di Git e GitHub è considerata fondamentale per sviluppatori, ingegneri DevOps, amministratori di sistema, docenti e studenti di informatica. I vantaggi:

01 · TRACCIABILITÀ

Ogni modifica documentata

Autore, data, messaggio: sai sempre chi ha fatto cosa.

02 · COLLABORAZIONE

Team distribuiti

Lavoro asincrono con branch, PR e code review.

03 · PROFESSIONALITÀ

Richiesto nei colloqui

Portfolio GitHub = curriculum tecnico moderno.

Sicurezza: il rischio di perdita accidentale di codice è drasticamente ridotto perché ogni clone è un backup completo.

7. Cos'è Git? Approfondimento teorico

Git è un sistema distribuito: a differenza di sistemi centralizzati come SVN, ogni utente ha copia completa del repository, migliorando sicurezza, velocità e autonomia. Puoi lavorare offline e sincronizzare dopo.

📌 Vantaggi principali

Backup completo su ogni dispositivo · Gestione semplice di branch e versioni · Collaborazione efficiente su progetti condivisi

💬 Tip del docente

Controllo versione distribuito vs centralizzato: SVN richiede connessione continua al server centrale. Git ti permette di fare commit, branch e log offline. Fondamentale quando lavori in treno o in laboratorio con rete instabile.

8. Come Installare Git - Sezione Pratica

8.1 Installare Git su Windows

  1. Vai su https://git-scm.com
  2. Clicca su Download e scegli versione per Windows
  3. Avvia il file .exe e segui setup mantenendo impostazioni predefinite
  4. Concludi con Finish
  5. Apri Git Bash e digita git --version
🎯 Tip installazione Windows

Durante installazione seleziona “Git Bash Here” e “Add Git to PATH” per integrare Git nel menu contestuale di Windows e usarlo da VS Code.

8.2 Installare Git su macOS

Consigliato Homebrew:

TERMINAL · macOS
brew install git

In alternativa scarica pacchetto ufficiale da git-scm.com e segui installazione guidata.

8.3 Installare Git su Linux

Ubuntu/Debian:

TERMINAL · LINUX
sudo apt update sudo apt install git

Fedora:

TERMINAL · FEDORA
sudo dnf install git

9. Prima Configurazione di Git

Dopo installazione è fondamentale configurarlo. Prerequisito utile: Visual Studio Code installato.

Impostare nome utente e email

GIT CONFIG
git config --global user.name "Il Tuo Nome" git config --global user.email "tua@email.com"

🔹 Questi dati verranno associati a ogni commit.

Verificare la configurazione

GIT
git config --list

Configurazioni opzionali utili

ConfigurazioneComandoUtilità
Colori outputgit config --global color.ui autoAbilita colori in status, diff: più leggibile, individui subito file modificati e conflitti.
Editor VS Codegit config --global core.editor "code --wait"Apre VS Code quando Git richiede editor (es. commit senza -m). --wait fa attendere chiusura editor.
Line endings Windowsgit config --global core.autocrlf trueGestisce differenze CRLF Windows vs LF Linux/macOS. Evita conflitti in team misto.
✅ Checklist configurazione

☐ Nome utente impostato · ☐ Email configurata · ☐ Colori attivati · ☐ Editor configurato (VS Code) · ☐ core.autocrlf su Windows

10. Testare l'installazione di Git

Crea un primo repository di prova:

  1. In una directory a piacere, es. Desktop, crea cartella “Progetti con Git e GitHub”.
  2. Posizionati dentro ed apri VS Code dal Terminale Bash di Git:
BASH
code .

Si aprirà VS Code nella cartella. Crea dentro sottocartella git-test che sarà la repository di prova.

  1. Apri terminale e digita:
GIT
git init

Crea cartella nascosta .git con tutte le info di versionamento. Se in Windows abiliti “visualizza file nascosti” la vedrai.

  1. Crea file README.md in git-test, poi:
GIT · STAGING E COMMIT
git add README.md git commit -m "Primo commit"

Ora hai installato e configurato Git correttamente!

11. GitHub - Sezione Teorica

GitHub è piattaforma di hosting per repository Git con issue tracking, wiki, Actions per CI/CD, code review.

  • Hosting sicuro repo pubblici e privati
  • Collaborazione tramite pull request
  • Gestione issue, wiki e documentazione
  • Integrazione automazione

12. Come Creare un Account GitHub e un nuovo Repository

Account

  1. Vai su https://github.com
  2. Clicca Sign Up, inserisci username, email, password sicura
  3. Verifica email, scegli piano gratuito (sufficiente, permette repo privati)

Nuovo Repository

  1. Dopo login, clicca pulsante New
  2. Inserisci:
    • Repository name: nome significativo es. progetto-git-test
    • Descrizione facoltativa ma consigliata
    • Visibilità: pubblico o privato
  3. Non spuntare “Initialize this repository with a README” se hai già progetto locale
  4. Clicca Create Repository

GitHub propone maschera con comandi utili per collegare locale.

Screenshot 1 · Creazione nuovo repository GitHub
Screenshot creazione repository GitHub

13. Collegare il Repository GitHub al Progetto Locale

Abbiamo creato localmente cartella git-test. Vogliamo collegarla al remoto. Da VS Code:

GIT · REMOTE + PUSH
git remote add origin https://github.com/TUO_USERNAME/progetto-git-test.git git branch -M main git push -u origin main
💬 Tip docente - origin e main

origin è nome predefinito del repository remoto. main è branch principale (oggi sostituisce master). Con git remote add origin ... diamo nome origin al remoto. Con git branch -M main rinominiamo branch locale in main. Con git push -u origin main facciamo primo push e colleghiamo branch locale a remoto (tracking/upstream).

Abbiamo fatto primo PUSH! Aggiornando pagina GitHub vedrai README.md.

Screenshot 2 · Primo push riuscito - file visibile su GitHub
Screenshot repo GitHub dopo push

14. Panoramica dei Comandi Git di Base

ComandoDescrizioneQuando si usa
git initInizializza nuovo repositoryQuando crei nuovo progetto
git statusMostra stato filePer verificare modifiche
git addAggiunge file a stagingPrima del commit
git commitRegistra modificheDopo aver aggiunto file
git pushInvia modifiche a remotoDopo commit
git pullScarica modifiche da remotoPer aggiornare progetto
git cloneCopia locale di repo remotoPer iniziare su progetto esistente

15. Dal init al commit: flusso dettagliato

Inizializzare un nuovo progetto

GIT
git init

Nel nostro esempio avevamo creato git-test e poi eseguito git init.

Controllare lo stato

GIT
git status

Output tipico dopo push: branch aggiornato, nothing to commit.

Aggiungere file a staging

GIT
git add nome_file # oppure tutti i file modificati git add .
📌 Staging area

Zona intermedia tra working directory e repository. Raccogli le modifiche che includerai nel prossimo commit. Permette di selezionare solo alcuni file o porzioni.

Salvare con commit

GIT
git commit -m "Descrizione significativa delle modifiche"

L'opzione -m evita apertura editor. Se ometti -m, Git apre editor configurato con core.editor.

Inviare a remoto

GIT
git push origin main

Aggiornare locale

GIT
git pull origin main

Esegue fetch + merge delle modifiche remote.

Clonare repository esistente

GIT
git clone https://github.com/utente/repository.git

Per clonare clicca pulsante verde “Code” su GitHub e copia URL.

Cronologia

GIT
git log

16. Collaborazione su GitHub

Collaborare non significa solo caricare codice, ma lavorare in squadra organizzata:

  • Forkare un progetto
  • Proporre modifiche tramite Pull Request
  • Segnalare problemi con Issue
  • Organizzare lavoro con Project Board
📌 Collaborazione asincrona

GitHub permette di collaborare senza essere online contemporaneamente, grazie a PR e Issue.

Come Forkare un Repository

Fork = creare copia di repository sul proprio account.

  1. Vai sul repository da forkare
  2. Clicca pulsante Fork in alto a destra
  3. GitHub crea copia sul tuo profilo
🎯 Quando forko?

Quando vuoi proporre modifiche a progetto non tuo, o creare versione personalizzata.

Screenshot 3 · Pulsante Fork su GitHub
Screenshot Fork GitHub

Come Creare una Pull Request

Dopo modifiche nel tuo fork, puoi proporle al repository originale.

  1. Dal tuo fork, clicca Pull Request > New Pull Request
  2. Seleziona tuo branch e confrontalo con branch principale originale
  3. Scrivi titolo chiaro e descrizione dettagliata
  4. Clicca Create Pull Request
💬 Tip docente - buona PR

Descrizione modifiche · Motivazione · Riferimenti a Issue collegate (Fixes #numero). Una PR chiara viene approvata più velocemente.

Come Segnalare Problemi: Le Issue

Issue = strumento per segnalare bug, proporre miglioramenti, discutere idee.

  1. Clicca scheda Issues del repository
  2. Clicca New Issue
  3. Inserisci titolo descrittivo e testo dettagliato
  4. Assegna etichette (bug, enhancement, help wanted...)
✅ Buone pratiche Issue

Essere chiari e concisi · Fornire dettagli tecnici (versione, errori) · Usare template se disponibili.

Screenshot 4 · Lista Issue GitHub
Screenshot Issues

Gestire il lavoro con Project Board

Project Board = strumento kanban di GitHub per organizzare lavoro in colonne (To do, In Progress, Done).

  1. Vai su Projects > New Project
  2. Scegli modello Basic Kanban
  3. Aggiungi colonne e card relative a issue, PR o note
Screenshot 5 · Project Board Kanban
Screenshot Project Board
🎯 Quando usare Project Board?

Quando progetto coinvolge più task o sviluppatori, o vuoi tracciare avanzamento.

Flusso di collaborazione tipico

1.Fork del progetto
2.Creazione branch dedicata (feature/nuova-funzionalita)
3.Modifica codice
4.Commit locale e push branch
5.Apertura Pull Request
6.Revisione da maintainer e merge

17. Approfondimenti e strumenti utili

Git e GitHub offrono funzionalità avanzate che migliorano esperienza di sviluppo.

.gitignore e file non tracciati

Il file .gitignore specifica quali file Git deve ignorare (log, node_modules, .env, .DS_Store).

.gitignore · ESEMPIO
*.log node_modules/ .DS_Store .env /dist/
💬 Tip

Usa gitignore.io per generare automaticamente .gitignore personalizzati per stack (Node, Python, Java...).

Tagging con git tag

I tag marcano punti precisi nella storia, tipicamente versioni di rilascio.

GIT TAG
# Tag leggero git tag v1.0# Tag annotato (consigliato) git tag -a v1.0 -m "Versione 1.0 stabile"# Inviare tag a remoto git push origin v1.0

Integrazione con Visual Studio Code

VS Code è uno dei migliori editor per Git/GitHub:

  1. Assicurati Git installato
  2. Apri progetto in VS Code
  3. Configura: git config --global core.editor "code --wait"
  4. Usa barra laterale Source Control per commit, branch, merge
Screenshot 6 · Source Control VS Code con Git
Screenshot VS Code Source Control
🎯 Mini-guida VS Code

Tramite pulsante Source Control puoi creare commit direttamente da VS Code, vedere diff, risolvere conflitti con editor visuale, fare push/pull senza terminale.

GitHub Pages: pubblicare siti statici

Servizio gratuito per ospitare siti statici da repository.

  1. Crea nuovo repository
  2. Aggiungi file statici (index.html, CSS, JS)
  3. Vai su Settings > Pages
  4. Seleziona branch e cartella da pubblicare
  • User Site: username.github.io
  • Project Site: username.github.io/nome-progetto

Ideale per portfolio, documentazione, progetti personali.

Screenshot 7 · Impostazioni GitHub Pages
Screenshot Settings Pages

18. Conclusione e FAQ

L’uso di strumenti avanzati come .gitignore, tag, Semantic Versioning e GitHub Pages consente di sfruttare appieno potenziale Git e GitHub. Integrando flusso con VS Code e estensioni, ottieni gestione codice efficiente e professionale.

📚 Prossimo passo

Ora sperimenta: crea un repository per un progetto, carica i file, e prova flusso fork → branch → PR con un compagno. È il modo migliore per fissare concetti prima di passare a CI/CD e GitHub Actions.

FAQ

Q1

Come verifico se Git è installato?

👉 git --version nel terminale.

Q2

Posso usare Git senza GitHub?

Sì, Git è locale; GitHub è hosting remoto.

Q3

Cosa significa inizializzare repo?

Creare database locale versionamento con .git.

Q4

Clone vs pull?

clone copia repo esistente, pull aggiorna repo già clonato.

Q5

Dimenticato remote?

Aggiungi dopo: git remote add origin URL.

Q6

Cambio branch predefinito?

git branch -M main.

Q7

Più file in un commit?

Sì, git add . o elenca file.

Q8

Errore nel commit?

git commit --amend per correggere ultimo.

Q9

Devo pushare sempre?

No, accumula commit locali poi unico push.

Lascia un commento