venerdì 12 settembre 2025

Git: Stato dei file

Uno degli strumenti principali per conoscere lo stato dei file all’interno di un repository è il comando:

git status

Se eseguito immediatamente dopo la clonazione di un repository, l’output potrebbe essere simile a quello mostrato in FIG 1.

Nothing to commit
FIG 1 - Nothing to commit

Questo messaggio indica che la working directory è "pulita": nessun file tracciato è stato modificato e non esistono file non tracciati. Inoltre, il comando segnala il ramo corrente (in questo caso master) e l'eventuale stato di sincronizzazione con il corrispondente ramo remoto (Ad esempio con il messaggio Your branch is up to date with 'origin/master'.).


Gestione nuovo file

Supponiamo di creare, all'interno della cartella del progetto, un nuovo file Readme.txt. Rieseguendo il comando git status avremo il messaggio mostrato in FIG 2.

Untracked files
FIG 2 - Untracked files

Come si può osservare, il file Readme.txt compare nella sezione Untracked files. Questo significa che Git lo rileva nella directory di lavoro, ma non lo sta ancora monitorando. Tale comportamento impedisce di includere accidentalmente file temporanei, binari generati o altri elementi non desiderati.

Per iniziare a tracciare il file è necessario utilizzare il comando:

git add Readme.txt

Eseguendo nuovamente git status si ottiene quanto mostrato in FIG 3.

Changes to be committed
FIG 3 - Changes to be committed

Ora Readme.txt risulta staged e pronto per essere incluso nel prossimo commit.


Gestire file modificati

Se si modifica un file già tracciato, ad esempio form.cs, l’output sarà simile a quello mostrato in FIG 4

Modified
FIG 4- Modified
Il file form.cs appare nella sezione Changes not staged for commit, a indicare che è stato modificato ma non ancora aggiunto allo staging. Per includerlo, si utilizza nuovamente git add:

git add form.cs

Eseguendo git status si vedrà che entrambi i file (Readme.txt e form.cs) sono ora pronti per il commit (FIG 5).

Changes to be committed
FIG 5 - Changes to be committed


Modifiche ulteriori su file già in staging

Può accadere di modificare nuovamente un file già aggiunto allo staging. In tal caso, lo stesso file apparirà in due sezioni contemporaneamente. Supponiamo di modificare nuovamente il file form.cs. Andando a visualizzare lo stato dei file con git status avremo la situazione mostrata in FIG 6.

Modifica file già in staging
FIG 6 - Modifica file già in staging

Il file modificato, form.cs, appare in due sezioni:

  • Changes to be committed: rappresenta la versione del file già aggiunta allo staging.
  • Changes not staged for commit: rappresenta la nuova versione del file, ancora non inclusa.

Questo comportamento è dovuto al fatto che Git memorizza nello staging area l’esatta istantanea del file al momento in cui è stato eseguito git add. Se il file viene modificato successivamente, per aggiornare l’istantanea occorre eseguire nuovamente:

git add form.cs

In questo modo, la versione aggiornata del file verrà inclusa nel prossimo commit.


Short Status

L’output del comando git status è piuttosto dettagliato, ma può risultare prolisso in alcune circostanze. Per questo motivo, Git mette a disposizione una modalità compatta tramite i flag:

git status -s

oppure

git status --short

Il risultato è una rappresentazione semplificata delle modifiche presenti nella working directory e nell’area di staging (FIG 7).

Short Status
FIG 7 - Short Status

L'output del comando è composto da due colonne più il nome del file:  la colonna di sinistra (caratteri di colore verde) rappresenta lo stato del file nell’area di staging mentre quella di destra (caratteri di colore rosso) rappresenta lo stato del file nella working directory. 

Significato dei simboli

  • ?? → file non tracciato (non incluso nello staging, nuovo file).
  • A → file aggiunto allo staging (tracked per la prima volta).
  • M → file modificato.
  • D → file eliminato.
  • R → file rinominato.
  • C → file copiato.


Riassumendo

  • git status è lo strumento di riferimento per monitorare lo stato della working directory.
  • git add serve non solo ad aggiungere nuovi file al versionamento, ma anche ad aggiornare le modifiche di file già tracciati.
  • Lo staging rappresenta uno snapshot intermedio: il commit fotografa esattamente i contenuti presenti nello staging al momento dell’esecuzione di git commit




Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.