In questo articolo, Git e GitHub, vediamo cos’è Git, GitHub, come installarli ed utilizzarli
- Introduzione
- Perché imparare Git e GitHub
- Cos’è Git? (Sezione Teorica)
- Come Installare Git (Sezione Pratica)
- Prima Configurazione di Git
- Cos’è GitHub? (Sezione Teorica)
- Panoramica dei Comandi Git di Base
- Introduzione alla collaborazione su GitHub
- Flusso di Collaborazione Tipico
- Approfondimenti e Strumenti Utili per Git e GitHub
- .gitignore e gestione dei file non tracciati
- Tagging con git tag
- Integrazione di GitHub con Visual Studio Code
- GitHub Pages: pubblicare siti web statici da repository
- Conclusione
- FAQ
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 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.
Cos’è Git
Git è un sistema di controllo versione distribuito (Distributed Version Control System, DVCS), creato da Linus Torvalds nel 2005 per supportare lo sviluppo del kernel Linux.
Le principali caratteristiche di Git sono:
- Velocità di esecuzione.
- Distribuzione: ogni sviluppatore possiede una copia completa del repository.
- Integrità: ogni cambiamento viene tracciato in maniera sicura.
- Supporto al branching rapido ed efficiente.
In altre parole, Git consente di:
- Tenere traccia delle modifiche apportate ai file.
- Ripristinare versioni precedenti di un progetto.
- Lavorare in parallelo su differenti funzionalità.
Il concetto di Versionamento del Codice
Il versionamento del codice è il processo attraverso cui si gestiscono le modifiche al codice sorgente 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 il rischio di errori e perdite di dati.
Cos’è GitHub
GitHub è una piattaforma web che offre hosting per repository Git. Oltre a consentire il semplice salvataggio online dei progetti, GitHub introduce funzionalità avanzate come:
- Collaborazione su progetti tramite fork, pull request e revisioni.
- Gestione di problemi e attività tramite GitHub Issues e Projects.
- Automazione di processi di sviluppo (ad esempio test automatici, integrazione continua).
- Pubblicazione di siti statici tramite GitHub Pages.
Nato nel 2008, GitHub è oggi il servizio di hosting Git più popolare al mondo ed è stato acquisito da Microsoft nel 2018.
Differenze tra Git e GitHub
Caratteristica | Git | GitHub |
---|---|---|
Tipologia | Strumento | Servizio Web |
Funzionalità | Controllo versione | Hosting, collaborazione e gestione |
Necessità di connessione Internet | No | Sì (per accesso remoto) |
Proprietà | Open-source, gratuito | Proprietario (Microsoft), piano gratuito e a pagamento |
In sintesi: Git è lo strumento che usiamo localmente per versionare i nostri progetti; GitHub è la piattaforma che ci consente di archiviare questi progetti online e collaborare con altri.
Perché imparare Git e GitHub
Oggi, la conoscenza di Git e GitHub è considerata fondamentale per chiunque lavori nel settore tecnologico:
- Sviluppatori software.
- Ingegneri DevOps.
- Amministratori di sistema.
- Docenti e studenti di informatica.
I principali vantaggi sono:
- Tracciabilità: ogni modifica è documentata.
- Collaborazione: team distribuiti possono lavorare insieme facilmente.
- Sicurezza: il rischio di perdita accidentale di codice è drasticamente ridotto.
- Professionalità: la padronanza di questi strumenti è spesso richiesta nei colloqui di lavoro.
Git è il sistema di controllo versione distribuito più utilizzato al mondo, uno strumento essenziale per sviluppatori, docenti e studenti.
In questa guida completa, impareremo passo dopo passo l’installazione e la configurazione di Git su Windows, MacOS e Linux, illustrando anche i primi comandi fondamentali per iniziare a lavorare in modo professionale.
Cos’è Git? (Sezione Teorica)
Git è un sistema di versionamento distribuito sviluppato da Linus Torvalds nel 2005 per supportare lo sviluppo del kernel Linux.
A differenza dei sistemi centralizzati, Git consente a ogni utente di avere una copia completa del repository, migliorando sicurezza, velocità e autonomia.
Vantaggi principali:
- Backup completo dei dati su ogni dispositivo.
- Gestione semplice dei branch e delle versioni di progetto.
- Collaborazione efficiente su progetti condivisi.
📚 Approfondimento:
🔹 Controllo versione distribuito vs centralizzato: Git consente a ogni sviluppatore di lavorare offline e sincronizzare le modifiche successivamente, a differenza di sistemi come SVN che richiedono una connessione continua al server centrale.

Come Installare Git (Sezione Pratica)
1. Installare Git su Windows
- Accedi al sito ufficiale: https://git-scm.com

- Clicca su Download e scegli la versione per Windows.
- Avvia il file
.exe
scaricato.
- Segui il setup guidato mantenendo le impostazioni predefinite.

- Concludi l’installazione cliccando su Finish.
- Apri Git Bash e scrivi nel terminale:
git --version

📌 Tip: Durante l’installazione, selezionare “Git Bash Here” per integrare Git nel menu contestuale di Windows.
2. Installare Git su MacOS
- Utilizzare Homebrew (consigliato):
brew install git
In alternativa, scaricare il pacchetto ufficiale da https://git-scm.com e seguire l’installazione guidata.
3. Installare Git su Linux
- Per Ubuntu/Debian:
sudo apt update
sudo apt install git
- Per Fedora:
sudo dnf install git
Prima Configurazione di Git
Dopo aver installato Git, è fondamentale configurarlo correttamente.
Prerequisito: Non è indispensabile ma serebbe utile che Visual Studio Code fosse installato
Impostare nome utente e email
git config --global user.name "Il Tuo Nome"
git config --global user.email "tua@email.com"
🔹 Questi dati verranno associati a ogni commit che effettuerai.
Verificare la configurazione
git config --list

Configurazioni Opzionali Utili
Configurazione | Comando | Significato e Utilità |
---|---|---|
Colori nei comandi Git | git config --global color.ui auto | Questa configurazione abilita automaticamente l’uso dei colori nell’output dei comandi Git (es. git status , git diff ), rendendo più chiari e leggibili i messaggi a video. È particolarmente utile per individuare rapidamente file modificati, conflitti, ecc. |
Editor predefinito (es. VS Code) | git config --global core.editor "code --wait" | Imposta Visual Studio Code come editor predefinito per Git. Quando Git richiede l’apertura di un editor di testo (ad esempio durante un git commit senza il messaggio -m ), aprirà VS Code. L’opzione --wait fa sì che Git attenda la chiusura dell’editor prima di proseguire. |
Impostare line endings corretti (Windows) | git config --global core.autocrlf true | Questa configurazione gestisce correttamente le differenze tra fine riga (line endings) tra sistemi operativi: Windows usa CRLF , Linux/macOS usano LF . Con core.autocrlf true , Git converte automaticamente i CRLF di Windows in LF nei repository e riconverte in CRLF quando i file vengono salvati sul tuo sistema Windows. Serve a evitare problemi nei progetti condivisi tra utenti Windows, Linux e macOS. |
📋 Checklist configurazione:
- Nome utente impostato
- Email configurata
- Colori attivati
- Editor configurato
Testare l’installazione di Git
Verifica che tutto funzioni correttamente creando un primo repository di prova:
In una directory a piacere, ad esempio dul Desktop, Creare la cartella “Progetti con Git e GitHub”. Posizionarsi all’interno di questa cartella ed aprire un’istanza di Visual Studio Code attraverso il Terminale Bash di Git scrivendo:
code .

Si aprirà Visual studio Code nella cartella “Progetti con Git e GitHub”. Creare all’interno una cartella “git-test” che sarà la repository di prova
Aprire un terminale e digitare:
git init

Creare un file “README.md” in “git-test”
digitare nel terminale:
git add README.md
digitare nel terminale:
git commit -m "Primo commit"

Ora hai installato e configurato Git correttamente sul tuo sistema!
Dopo aver installato e configurato Git sul tuo computer, il passo successivo è imparare a utilizzare GitHub per condividere i tuoi progetti online e collaborare con altri sviluppatori.
In questa guida dettagliata, ti spiegherò come creare un repository su GitHub, come collegarlo a un progetto Git locale e come eseguire il primo push del codice.
Cos’è GitHub? (Sezione Teorica)
GitHub è una piattaforma di hosting per repository Git, che offre strumenti avanzati per la gestione dei progetti, la collaborazione, il monitoraggio dei problemi (issue tracking) e l’integrazione continua (CI/CD).
🔹 Funzionalità principali di GitHub:
- Hosting sicuro di repository Git pubblici e privati.
- Collaborazione tramite pull request.
- Gestione issue, wiki e pagine di documentazione.
- Integrazione con strumenti di automazione.

Come Creare un Account GitHub
- Vai su https://github.com.
- Clicca su Sign Up.
- Inserisci:
- Username
- Password sicura
- Verifica il tuo indirizzo email.
- Scegli se iniziare con un piano gratuito o a pagamento.
📌 Tip: Il piano gratuito è più che sufficiente per iniziare e permette di creare repository privati.
Creare un Nuovo Repository su GitHub
- Dopo aver effettuato l’accesso, clicca sul pulsante New (in alto a sinistra, nel tuo profilo o dashboard).
- Inserisci:
-
Repository name: Nome significativo (esempio:
progetto-git-test
). - Descrizione: (facoltativa ma consigliata).
- Visibilità: Pubblico o privato.
- Non selezionare l’opzione “Initialize this repository with a README” se hai già un progetto locale da collegare.
-
Repository name: Nome significativo (esempio:
- Clicca su Create Repository.

GitHub propone una maschera con una serie di comandi utili:

Collegare il Repository GitHub al Progetto Locale
Noi abbiamo creato localmente la cartella (il repositoy) “git-test” Vogliamo collegare questo al repository remoto. Torniamo su VSC e digitiamo i tre comandi:
git remote add origin https://github.com/MarioGiagnotti/progetto-git-test.git
git branch -M main
git push -u origin main
⚡ Nota: Alcuni repository utilizzano “main” invece di “master”. Verifica il nome del branch predefinito su GitHub.

Abbiamo fatto il nostro primo PUSH! collegando il repository locale a quello remoto infatti se aggiorniamo la pagina di GitHub:

Dopo aver creato il tuo primo repository GitHub e collegato il tuo progetto locale, è essenziale conoscere i comandi Git di base.
Panoramica dei Comandi Git di Base
Comando | Descrizione | Quando si usa |
---|---|---|
git init | Inizializza un nuovo repository Git | Quando crei un nuovo progetto |
git status | Mostra lo stato dei file | Per verificare modifiche |
git add | Aggiunge file all’area di staging | Prima del commit |
git commit | Registra le modifiche nel repository | Dopo aver aggiunto file |
git push | Invia modifiche al repository remoto | Dopo il commit |
git pull | Scarica modifiche dal repository remoto | Per aggiornare il progetto |
git clone | Crea una copia locale di un repository remoto | Per iniziare a lavorare su un progetto esistente |
Ecco, ora possiamo spiegare quanto abbiamo fatto in precedenza:
Inizializzare un Nuovo Progetto Git
Per iniziare a tracciare un progetto locale:
git init
Questo comando crea una cartella .git
nascosta che contiene tutte le informazioni di versionamento.
Noi, in precedenza avevamo creato il repository locale “git-test” e poi abbiamo eseguito il comando git init
inizializzando il progetto.
Se modifichiamo in Windows le modalità di visualizzazione scegliendo “visualizza i file nascosti” vedremmo che esiste una cartella nascosta .git

Controllare lo Stato dei File
Visualizza i file modificati, aggiunti o non tracciati:
git status
Se scriviamo questo comando l’output che avremo è:

Cioè il branch (che spiegheremo in seguito) è aggiornato, non c’è nulla per cui fare il commit (cioè nulla da memorizzare come nuova versione)
Aggiungere File all’Area di Staging
Per dire a Git quali file includere nel prossimo commit. Il comando è:
git add nome_file
In precedenza noi avevamo scritto: git add README.md
cioè avevamo inserito il file README.md in un’area, chiamata area di staging dove risiedono tutti i file che potrebbero essere memorizzati con il commit.
La staging area è una zona intermedia tra la directory di lavoro e il repository. In essa, vengono “raccolte” le modifiche che verranno incluse nel prossimo commit. È uno spazio di preparazione dove si seleggono specifici file o parti di file modificati per essere inclusi in un commit specifico
Nel caso in cui nel nostro progetto avessimo modificato più di un file e volessimo inserire tutti i file modificati nell’area di staging dovremmo eseguire il comando:
git add .
Salvare le Modifiche con un Commit
Salvare una serie di modifiche registrandole nel repository:
git commit -m "Descrizione significativa delle modifiche"
infatti noi avevamo creato il file README.md, inserito il file nell’area di staging e salvato lo stesso con un commit
L’opzione -m permette di scrivere il messaggio senza che sia aperto un editor di testo per scriverne uno
Inviare le Modifiche al Repository Remoto
Dopo aver eseguito il commit:
git push origin main
(o origin master
, a seconda del branch predefinito)
📌 Tip Box: Cosa sono origin
e main
?
-
origin
: il nome predefinito del repository remoto. -
main
: il branch principale.
Nel nostro esempio, dopoaver collegato il repository locale a quello remoto con il comando: git remote add origin https://github.com/MarioGiagnotti/progetto-git-test.git
di fatto avevamo dato il nome predefinito (“origin”) al repository remoto.
Poi, con il comando git branch -M main
avevamo rinominato il branch locale in main e poi abbiamo fatto il push con il comando git push -u origin main
l’opzione -u
(forma abbreviata di --set-upstream
) serve a collegare il ramo locale (nome-branch
) al ramo remoto (origin/nome-branch
).
Questo legame è chiamato tracking o associazione di upstream.
Aggiornare il Progetto Locale
Per sincronizzarsi con eventuali modifiche apportate da altri collaboratori:
git pull origin main
Questo comando esegue un fetch
(scarica) e un merge
(integra) delle modifiche remote.
Clonare un Repository Esistente
Se vuoi iniziare a lavorare su un progetto già presente su GitHub:
git clone https://github.com/utente/repository.git
Per clonare un repository esistente dopo git clone occorre incollare l’URL del repository che sitrova cliccando sul pulsante verde “code”

Gestire la Cronologia dei Commit
Visualizzare la cronologia:
git log

Introduzione alla collaborazione su GitHub
Collaborare su GitHub non significa solo caricare il proprio codice, ma anche lavorare in squadra in modo organizzato ed efficiente.
In questa sezione vedremo come:
- Forkare un progetto
- Proporre modifiche tramite Pull Request
- Segnalare problemi usando le Issue
- Organizzare il lavoro con i Project Board
Cos’è la Collaborazione su GitHub?
GitHub è stato progettato per facilitare la collaborazione, permettendo a sviluppatori di tutto il mondo di:
- Contribuire a progetti open source
- Lavorare in team su software privati
- Gestire bug, miglioramenti e nuove funzionalità
🔹 Box di Approfondimento: 📦 Collaborazione Asincrona
GitHub permette di collaborare senza bisogno di essere online contemporaneamente, grazie a strumenti come pull request e issue.
Come Forkare un Repository
Fork = Creare una copia di un repository sul proprio account GitHub.
Passaggi:
- Vai sul repository che vuoi forkare.
- Clicca sul pulsante Fork in alto a destra.
- GitHub creerà una copia del repository sul tuo profilo.

📌 Tip Box: Quando forko un repository?
- Quando vuoi proporre modifiche a un progetto che non ti appartiene.
- Quando vuoi creare una versione personalizzata.
Come Creare una Pull Request
Dopo aver effettuato modifiche nel tuo fork, puoi proporle al repository originale tramite una Pull Request.
Passaggi:
- Dal tuo fork, clicca su Pull Request > New Pull Request.
- Seleziona il tuo branch e confrontalo con il branch principale del progetto originale.
- Scrivi un titolo chiaro e una descrizione dettagliata.
- Clicca su Create Pull Request.
📌 Tip Box: Cosa deve contenere una buona Pull Request?
- Descrizione delle modifiche
- Motivazione delle modifiche
- Eventuali riferimenti a Issue collegate (
Fixes #numero-issue
)
Come Segnalare Problemi: Le Issue
Issue = Strumento per segnalare problemi, proporre miglioramenti o discutere nuove idee.
Come creare una Issue:
- Clicca sulla scheda Issues del repository.
- Clicca su New Issue.
- Inserisci un titolo descrittivo e un testo dettagliato.
- Assegna eventuali etichette (bug, enhancement, help wanted…).
📌 Tip Box: Buone pratiche per una Issue efficace:
- Essere chiari e concisi.
- Fornire dettagli tecnici utili (es. versione software, errori).

Gestire il Lavoro con i Project Board
Project Board = Strumento kanban di GitHub per organizzare il lavoro in colonne (es. To do, In Progress, Done).
Creare un Project Board:
- Vai su Projects > New Project.
- Scegli un modello (ad esempio “Basic Kanban”).
- Aggiungi colonne e schede (card) relative a issue, pull request o note.
✅ Suggerimento Immagini:
- Screenshot di un Project Board GitHub.
📌 Tip Box: Quando usare un Project Board?
- Quando il progetto coinvolge più task o più sviluppatori.
- Quando desideri tracciare lo stato di avanzamento delle attività.

Flusso di Collaborazione Tipico
🎯 Esempio pratico:
- Fork del progetto.
- Creazione di una branch dedicata (
feature/nuova-funzionalita
). - Modifica del codice.
- Commit locale e push della branch.
- Apertura della Pull Request.
- Revisione da parte dei maintainer.
- Merge della Pull Request, chiusura dell’Issue collegata.

Approfondimenti e Strumenti Utili per Git e GitHub
Git e GitHub non sono solo strumenti per il controllo di versione e la collaborazione: offrono una serie di funzionalità avanzate che possono migliorare notevolmente l’esperienza di sviluppo. In questo articolo, esploreremo strumenti utili come il file .gitignore
, la gestione dei tag, il Semantic Versioning, l’integrazione con Visual Studio Code, alcune estensioni indispensabili e la pubblicazione di siti web statici tramite GitHub Pages.
.gitignore
e gestione dei file non tracciati
Il file .gitignore
consente di specificare quali file o cartelle Git deve ignorare. Questo è particolarmente utile per evitare di tracciare file temporanei, log o file di configurazione locali.
Esempi pratici:
*.log
node_modules/
.DS_Store
.env
Approfondimento: Usa gitignore.io per generare automaticamente file
.gitignore
personalizzati.
Tagging con git tag
I tag in Git servono a marcare punti precisi nella storia del repository, tipicamente utilizzati per indicare versioni di rilascio.
Comandi principali:
# Creare un tag leggero
git tag v1.0
# Creare un tag annotato
git tag -a v1.0 -m "Versione 1.0 stabile"
# Inviare i tag al repository remoto
git push origin v1.0
Consiglio: Usa sempre tag annotati per una gestione più completa delle versioni.
Integrazione di GitHub con Visual Studio Code
Visual Studio Code (VS Code) è uno dei migliori editor per lavorare con Git e GitHub.
Passaggi principali:
- Assicurati di avere Git installato.
- Apri il progetto in VS Code.
- Configura Git con:
git config –global core.editor “code –wait”
- Utilizza la barra laterale Git di VS Code per gestire commit, branch e merge.
Mini-Guida: Tramite il pulsante “Source Control” puoi creare commit direttamente da VS Code.

GitHub Pages: pubblicare siti web statici da repository
GitHub Pages è un servizio gratuito che consente di ospitare siti web statici direttamente da un repository GitHub.
Creazione di un sito con GitHub Pages:
- Crea un nuovo repository.
- Aggiungi i file statici (
index.html
, CSS, JS). - Vai su Settings > Pages.
- Seleziona il branch e la cartella da pubblicare.
Differenze principali:
- User Site: username.github.io
- Project Site: username.github.io/nome-progetto
Nota: GitHub Pages è ideale per portfolio, documentazione o progetti personali.
Conclusione
L’uso di strumenti avanzati come .gitignore
, i tag, il Semantic Versioning e GitHub Pages consente di sfruttare appieno il potenziale di Git e GitHub. Inoltre, integrando il flusso di lavoro con Visual Studio Code e le estensioni suggerite, è possibile ottenere una gestione del codice ancora più efficiente e professionale.
Ti invito a sperimentare questi strumenti nei tuoi prossimi progetti!
FAQ
Come verifico se Git è installato?
👉 Esegui il comando git --version
nel terminale.
Posso usare Git senza GitHub?
👉 Sì, Git è un sistema locale; GitHub è un servizio di hosting remoto.
Cosa significa ‘inizializzare un repository’?
👉 Creare un database locale di versionamento nel tuo progetto.
Qual è la differenza tra clone e pull?
👉 git clone
copia un repository esistente, mentre git pull
aggiorna un repository locale già clonato.
Cosa succede se dimentico di configurare il remote?
👉 È sufficiente aggiungere il remote successivamente con git remote add origin URL
.
Come cambio il branch predefinito?
👉 Puoi usare git branch -M main
per rinominare il branch locale.
Posso committare più file contemporaneamente?
👉 Sì, con git add .
o specificando più file.
Cosa succede se faccio un errore nel commit?
👉 Puoi correggerlo con git commit --amend
.
Devo pushare ogni volta che faccio un commit?
👉 No, puoi accumulare più commit locali e poi eseguire un unico push.
Lascia un commento