Vai al contenuto principale

Git Status: come tenere traccia delle modifiche nel tuo progetto con sicurezza

Impara a usare il comando git status per monitorare lo stato del tuo repository. Questa guida è perfetta per principianti e professionisti alle prime armi che vogliono un workflow Git ottimizzato.
Aggiornato 29 set 2026  · 15 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Quando lavori su un progetto Git complesso, è facile perdere il filo di quali file sono stati modificati, messi in stage o restano non tracciati. È qui che entra in gioco git status. Questo comando fondamentale di Git offre un'istantanea chiara e completa dello stato attuale di un repository, evidenziando quali file sono cambiati, cosa è pronto per il commit e cosa richiede ancora attenzione.

Che tu stia risolvendo conflitti di merge, rivedendo le modifiche in stage o verificando che non ti sfugga nulla prima di un commit, git status ti offre la visibilità necessaria per restare organizzato.

In questa guida spiegherò ogni sezione dell'output di git status e tratterò personalizzazioni avanzate, aiutandoti ad avere maggiore controllo sul tuo workflow di versionamento.

Che cos'è Git Status?

Il comando git status fornisce un riepilogo in tempo reale dello stato del tuo repository Git. In particolare, confronta la working directory (i tuoi file locali) e l'area di staging (nota anche come index) con l'ultimo snapshot in commit. Questo ti permette di vedere quali file sono stati modificati, quali cambiamenti sono in stage e pronti per il commit e quali nuovi file restano non tracciati.

Eseguendo git status, gli sviluppatori possono verificare che le modifiche giuste siano messe in stage o in commit, intercettare modifiche trascurate ed evitare di introdurre aggiornamenti incompleti. Questo è particolarmente utile quando si gestiscono più branch o si risolvono conflitti di merge, perché fornisce un feedback preciso su ciò che Git sta tracciando e su ciò che non lo è.

Capire come git status riflette l'interazione tra working tree, area di staging e cronologia del repository è fondamentale per usare Git in modo efficace ed evitare errori comuni.

Il diagramma sopra illustra la relazione tra working directory, area di staging e repository (cronologia dei commit), e come git status si inserisce nel quadro:

  • Modifiche non in stage (file modificati nella tua working directory) compaiono come "Changes not staged for commit".
  • Modifiche in stage (file aggiunti all'index con git add) appaiono come "Changes to be committed".
  • File non tracciati (nuovi file che Git non ha ancora visto) sono anch'essi elencati, invitandoti ad aggiungerli o ignorarli.
  • Se sei nel mezzo di un merge, git status ti segnalerà anche i conflitti e i passaggi successivi da compiere.

Esempio di output di git status:

$ git status

On branch feature/login
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   src/auth.js

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   src/utils.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        src/new-feature.js

Per una panoramica più ampia di Git e del suo ruolo nel versionamento, dai un'occhiata a questa guida completa a Git.

Come usare Git Status

Ecco un approccio passo‑passo per sfruttare git status in modo efficace nel tuo workflow.

Se non hai ancora configurato Git, questa guida alla configurazione ti accompagna in installazione e setup iniziale sui vari sistemi.

Utilizzo di base di git status

  • Apri il terminale:

Usa il tuo terminale o la tua interfaccia a riga di comando preferita. Ti dà accesso diretto per eseguire i comandi Git e vedere in tempo reale lo stato del tuo repository.

  • Vai alla directory del progetto:

Usa il comando cd per spostarti nella cartella in cui si trova il tuo progetto Git.

cd /path/to/your/project
  • Esegui git status:

Una volta dentro la directory del progetto, esegui il seguente comando.

git status

Come visto prima, Git restituirà un output che in genere include:

  • Il nome del branch corrente.
  • Un elenco delle modifiche in stage pronte per essere commitate.
  • Un elenco dei file modificati ma non in stage.
  • Eventuali file non tracciati, ovvero nuovi file non ancora aggiunti a Git.

Uso del formato breve

Se ti serve un'istantanea rapida senza dettagli extra, il formato breve è tuo alleato:

git status --short

Questa vista concisa elenca ogni file su una riga con simboli di stato, particolarmente utile quando cerchi una modifica specifica o integri questo comando in uno script.

Esempio di output:

 M index.html
A  new-script.js
?? temp.txt

Interpretazione dell'output:

  • Il primo carattere indica lo stato nell'area di staging.
  • Il secondo carattere indica lo stato nella working directory.

Codice

Significato

M

Modificato

A

Aggiunto

D

Eliminato

??

File non tracciato

MM

Modificato in entrambi gli stadi

AM

Aggiunto, poi modificato

Capire l'opzione -u in git status

L'opzione -u (abbreviazione di --untracked-files) ti permette di controllare come vengono mostrati i file non tracciati nell'output, utile in progetti con molti file generati. Ecco cosa significa ciascuna modalità:

  • normal (predefinita)

Mostra i file non tracciati in un formato standard e compatto.

Esempio:

git status -u normal

Questo è il comportamento standard che la maggior parte degli sviluppatori vede quando esegue git status.

  • all

Elenca ogni file non tracciato, anche quelli ignorati di default.

Esempio:

git status -u all

Questa modalità ti dà visibilità completa, utile quando effettui il debug di problemi di generazione file o rivedi cosa viene escluso tramite .gitignore.

  • no

Nasconde i file non tracciati per permetterti di concentrarti solo sulle modifiche ai file già tracciati da Git.

Esempio:

git status -u no

In uno dei miei progetti più grandi — un'applicazione Node.js con un processo di build complesso — l'output di git status era affollato da file temporanei, cache e artefatti di build. Aggiungere l'opzione -u no mi ha permesso di concentrarmi esclusivamente sulle modifiche ai file tracciati, senza distrazioni da file temporanei o generati automaticamente.

Personalizzare l'output con --porcelain

Per scripting o attività di automazione, un output prevedibile è essenziale. L'opzione --porcelain fornisce un formato pulito, stabile e leggibile dalle macchine di git status, ideale per strumenti personalizzati o workflow CI/CD:

git status --porcelain

Questa modalità imita il formato breve (--short) ma garantisce un output coerente tra versioni e configurazioni di Git. A differenza del git status predefinito, che può includere interruzioni di riga extra, suggerimenti o colori a seconda delle impostazioni utente, --porcelain elimina tutta questa formattazione, assicurando che gli script possano analizzare l'output in modo affidabile.

Prossimi passi dopo aver eseguito Git Status

Dopo aver eseguito git status e analizzato l'output, è il momento di decidere la mossa successiva — che si tratti di mettere file in stage, fare commit degli aggiornamenti o pulire la tua working directory. Ecco come procedere.

Mettere i file in stage per il commit

Lo staging prepara le tue modifiche per l'inclusione nel prossimo commit. Puoi scegliere se mettere in stage file singoli o tutto in una volta.

  • Metti in stage un file specifico:

Usalo quando vuoi un controllo preciso su cosa finisce nel commit.

git add <file-name>
  • Metti in stage tutte le modifiche:

Include i file modificati e quelli appena aggiunti nella directory corrente.

git add .
  • Metti in stage solo le modifiche ai file tracciati (escludendo i nuovi file non tracciati):
git add -u

Consiglio di rivedere con attenzione le modifiche usando git status o git diff prima di metterle in stage per evitare di includere accidentalmente file indesiderati. Abbinare git status al comando git diff offre ancora più dettagli su cosa è cambiato nei tuoi file.

Fare commit delle modifiche

Dopo aver messo in stage le modifiche, il passo successivo è creare un commit. Un messaggio di commit chiaro e descrittivo non solo registra cosa è cambiato ma anche perché è stata fatta la modifica, rendendo più semplice comprendere la storia del progetto nel tempo.

git commit -m "Describe your changes here"

Buone pratiche per i messaggi di commit:

  • Usa l'imperativo (es. "Correggi bug login", non "Corretto bug login").
  • Mantieni la riga di sommario sotto i 50 caratteri quando possibile.
  • Se serve, usa un messaggio su più righe (git commit senza -m) per separare sommario e spiegazione dettagliata.

Ho imparato che dedicare un minuto in più per scrivere un messaggio di commit significativo può far risparmiare ore durante revisioni o sessioni di debug successive. Una volta che le modifiche sono state riviste, considera di fare squash dei commit per ripulire la cronologia di Git.

Gestire i file non tracciati

I file non tracciati possono affollare l'output di git status, soprattutto in progetti con artefatti di build, log o directory di dipendenze. Se ci sono file o cartelle che non intendi mai tracciare, puoi escluderli aggiungendo voci a un file .gitignore nella root del repository.

# Ignore dependency folders and log files
node_modules/
*.log

# Ignore system files
.DS_Store
Thumbs.db

Questo garantisce che nel tuo repository ci siano solo i file rilevanti, mantenendo l'output di git status pulito e focalizzato. Quando devi rimuovere i file non tracciati rimasti nella tua working directory, git clean è anche uno strumento interessante.

Rivedere regolarmente lo stato

Eseguire spesso git status è un'abitudine semplice ma potente che aiuta a mantenere un workflow di sviluppo pulito e sotto controllo. Puoi evitare errori comuni come committare modifiche incomplete o trascurare file non tracciati controllando lo stato della working directory e dell'area di staging a intervalli regolari — soprattutto prima di commit, cambi di branch o merge.

Ora ho integrato questo passaggio nella mia routine quotidiana, riducendo drasticamente gli errori nella mia cronologia dei commit.

Risoluzione dei problemi comuni con Git Status

Anche se è semplice, a volte git status può produrre informazioni travolgenti o confuse. Ecco alcuni problemi comuni e come gestirli.

File non tracciati indesiderati

Nei progetti grandi, specialmente quelli che usano vari tool di build, potresti vedere molti file che non avevi intenzione di tracciare. Se compaiono, verifica le impostazioni del tuo .gitignore e, se necessario, rimuovili dal tracciamento usando:

git rm --cached <file-name>

Dopo aver aggiornato il tuo .gitignore e usato git rm --cached, esegui di nuovo git status per verificare che il file non sia più tracciato o mostrato inutilmente.

Output eccessivo

In progetti con molti file — specialmente quelli che generano log, cache o asset temporanei — l'output di git status può diventare rumoroso e difficile da scansionare. Questo rende complicato concentrarsi sulle modifiche significative che richiedono attenzione.

In tal caso, puoi visualizzare un riepilogo conciso, una riga per file:

git status --short

Oppure nascondere del tutto i file non tracciati dall'output:

git status -u no

Insieme, queste opzioni rendono git status più focalizzato e digeribile — soprattutto in codebase più grandi o workflow automatizzati.

Conclusione

In sintesi, git status è uno strumento indispensabile che ti offre una finestra in tempo reale sulla salute del tuo repository. Padroneggiando la vista predefinita, il formato breve e opzioni avanzate come il flag -u, puoi snellire il tuo workflow Git ed evitare insidie comuni. Sperimenta queste modalità sui tuoi progetti e nota come la maggiore chiarezza nella gestione delle modifiche acceleri il tuo processo di sviluppo.

Se sei nuovo in Git, comprendere git status diventa ancora più potente se affiancato a git init, il comando che inizializza i repository. Se non l'hai ancora fatto, dai un'occhiata al mio tutorial su Git Init per imparare come creare un repository da zero.

E se vuoi approfondire ancora le tue competenze Git, esplora questi corsi DataCamp:

  • Intermediate Git – Migliora le tue abilità con branching, merging e tecniche di risoluzione dei conflitti.
  • GitHub Foundations – Impara a integrare Git con GitHub per progetti collaborativi.

Buon coding — e brindiamo a restare sempre in perfetta sincronia con il tuo repository!

FAQ

In cosa git status è diverso da git diff?

Mentre git status mostra un riepilogo delle modifiche, git diff visualizza le differenze di contenuto effettive tra i file, offrendo un confronto più dettagliato.

Posso personalizzare l'output di git status?

Sì, usando opzioni come --short, --porcelain e -u, puoi adattare l'output per essere più conciso o adatto agli script, in base alle tue esigenze.

Qual è la differenza tra modifiche in stage e non in stage in Git?

Le modifiche in stage sono aggiunte all'index e pronte per il commit, mentre le modifiche non in stage sono ancora nella tua working directory e non sono state contrassegnate per il commit.

Come ignoro i file che compaiono in git status?

Puoi aggiungere pattern di file a un file .gitignore per impedire che determinati file (come log o artefatti di build) compaiano come non tracciati in git status.

Perché i file non tracciati continuano ad apparire in git status?

I file non tracciati sono quelli non aggiunti all'index di Git. Possono continuare a comparire se non vengono ignorati esplicitamente in .gitignore o messi in stage con git add.

In che modo git status aiuta a prevenire commit sbagliati?

Eseguendo git status prima di fare commit, puoi rivedere tutte le modifiche in stage e non in stage, assicurandoti di non perdere file o di non committare accidentalmente qualcosa di incompleto.

Git status è utile per risolvere i conflitti di merge?

Assolutamente. git status evidenzia i conflitti e ti guida su come risolverli prima di finalizzare un merge.

Con quale frequenza dovrei usare git status nel mio workflow?

Spesso! Usare git status prima di fare stage, commit o cambiare branch ti aiuta a restare organizzato ed evitare errori costosi.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Sono un data engineer e community builder: lavoro su pipeline dati, cloud e strumenti di AI, e scrivo tutorial pratici e ad alto impatto per DataCamp e per sviluppatori alle prime armi.

Argomenti
Git

Scopri di più su Git con questi corsi!

Corso

Introduzione a Git

2 ore
100.4K
Scopri le basi di Git per gestire le versioni nei tuoi progetti software e dati.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro