Differenze tra un file unstaged e untracked

Esistono tre aree distinte in git, la working directory, che sono tutti i file su cui sto effettivamente lavorando, l’area di staging e la git directory, che è una cartella .git/ nella directory attuale in cui vengono salvate tutte le informazioni sulla repository (branch, tag, remote..).

L’area di staging memorizza tutte le informazioni che verranno salvate nel prossimo commit.

Ricapitolando, io lavoro nella working directory, il comando git add permette di portare i file modificati nell’area di staging. Il comando git commit permette successivamente di portare i file modificati dall’area di staging alla cartela .git/.

In una cartelle di lavoro, posso avere i file in tre stati distinti (controllabili tramite il git status):

  • untrakced: il file non era presente nello scorso commit, è stato conseguentemente creato ma non appartiene ad alcuna repository. Il file non comparirà nel prossimo commit;
  • unstaged: il file è presente nella repository ma non è stato portato nell’area di staging. Le modifiche non compariranno nel prossimo commit;
  • staged: il file è stato modificato e questo si trova nell’area di staging. Conseguentemente tali modifiche compariranno nel prossimo commit.

Come scrivevo, il comando git add permette di far passare un file dall’area dalla working directory all’area di staging, qualora volessi effetuare l’operazione opposta eseguo un git reset --filename (per approfondire vedi la prossima sezione).

Indice

Share
Ultimi articoli

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)