Full Stack

Vedere lo stato della working directory e della staging area

Autore

Manuel Ricci

Fino ad ora, data anche la dimensione ridotta della working directory siamo andati abbastanza a memoria o con l’ausilio di Visual Studio Code a vedere lo stato dei file nella working directory e nella staging area.

In Git esiste ovviamente un comando che ci permette di vedere da riga di comando lo stato dei file, compresi quelli che sono untracked.

Il comando in questione è:

1$ git status

Tutto qui? Più o meno.

L’output di git status

L’output del comando è simile a questo:

1# On branch main
2# Changes to be committed:
3# (use "git reset HEAD <file>..." to unstage)
4#
5#modified: ciao.txt
6#
7# Changes not staged for commit:
8# (use "git add <file>..." to update what will be committed)
9# (use "git checkout -- <file>..." to discard changes in working directory)
10#
11#modified: hello.txt
12#
13# Untracked files:
14# (use "git add <file>..." to include in what will be committed)
15#
16#lorem.txt

La prima parte ci dice quali sono le modifiche che stanno per essere salvate, quindi presenti in staging area.

La seconda parte ci dice quali sono le modifiche non ancora inserite nella staging area.

Infine la terza parte ci dice quali file risultano untracked.

Ogni parte consiglia tra l’altro i comandi per poter performare delle azioni specifiche:

  • git reset HEAD <file> (equivalente di git rm --cached <file>) per toglierlo dalla staging area
  • git add<file>: per aggiungerlo alla staging area (sia per i modificati che per gli untracked)
  • git checkout -- <file> per scartare le modifiche e ripristinare il file alla versione nella HEAD

Ignorare i file

Per ignorare un file possiamo avvalerci del file .gitignore (da creare nella root folder di progetto) dove possiamo inserire i file e le directory che vogliamo escludere.

Le varie esclusioni devono essere specificate una per riga.

Flag di git status da tenere a mente

Come per gli altri comandi visti in precedenza anche git status ha dei flag da tenere a mente:

  • -s (--short): versione compatta dello stato della working directory
  • --long: versione di default con tutte le info
  • -v (--verbose): se c’è qualcosa nella staging area ci farà vedere le differenze tra ciò che stiamo per salvare e ciò che c’è nella HEAD
  • -u`` (--untracked-files): mostra i file untracked --uno: non mostra gli untracked --unormal: mostra i file e le directory untracked --uall`: come sopra, ma anche tutti i file nelle directory

Conclusioni

Lezione breve a sto giro, passiamo alla prossima dove inizieremo ad esplorare la cronologia delle modifiche con l’ausilio del comando git log.

Caricamento...

Diventiamo amici di penna? ✒️

Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.

Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!

Ho in previsione di mandarti una newsletter ogni due settimane e una commerciale quando capita.