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
Join

Newsletter

Nessuno spam, solo articoli interessanti ;)

Focus

Post correlati

git

Git merge e git rebase

Le differenze tra git merge e rebase è un punto dubbio per gli sviluppatori alle prime armi con git. Per spiegare la differenza tra questi

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 ;)