Sinossi
git status [-s] [-b] [--porcelain[=<version>]] [--ignored]
Descrizione
Il comando git status visualizza lo stato della working tree e della staging area. Mostra quali file sono in stage per il prossimo commit, quali sono modificati ma non in stage, e quali sono untracked. Riporta anche il branch corrente, se è avanti o indietro rispetto all'upstream e qualsiasi operazione in corso come merge o rebase.
git status è il comando Git più eseguito — è sicuro, veloce e informativo. Usalo costantemente per confermare in quale stato è il tuo repository prima di prendere decisioni. L'output predefinito è amichevole con colori e suggerimenti; l'output --porcelain è stabile, leggibile da macchina e pensato per script.
Nell'uso quotidiano, git status si integra con alias della shell, plugin dell'editor e CI. Per il debug, usa GIT_TRACE=1. git status --help apre la man page completa.
Capire come git status interagisce con il modello dati di Git paga dividendi. La maggior parte dei problemi deriva da: comportamento predefinito sorprendente, operazioni di rete parziali o riscrittura di storia condivisa.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
-s, --short | Visualizza in formato corto con codici di stato a due caratteri. |
-b, --branch | Mostra info di branch e tracking anche in formato corto. |
--porcelain | Output stabile leggibile da macchina per script. |
--ignored | Mostra anche i file ignorati. |
-u <mode> | Controlla come i file untracked sono riportati (no, normal, all). |
--ahead-behind | Calcola conteggi ahead/behind vs upstream. |
Esempi
git status
# Status leggibile completo
git status -sb
# Formato compatto con info di branch
git status --porcelain=v2 --branch
# Output stabile per script shell ed editor
git status --ignored
# Include i file corrispondenti a .gitignore
Errori comuni
I principianti a volte vanno nel panico quando git status mostra molti file untracked in un repo appena clonato con artefatti di build. Aggiungi un .gitignore appropriato per filtrarli. Un'altra trappola è parsare l'output predefinito negli script — il formato può cambiare tra versioni e traduzioni. Usa sempre --porcelain per l'automazione. Infine, grandi directory untracked possono rallentare considerevolmente lo status; usa -uno per saltarle.
Comandi correlati
git diff, git log, git add, git stash