Lavorando con Git, come abbiamo visto nei tutorial precedenti, si creano contemporaneamente più copie, differenti tra loro, dello stesso file tra area di lavoro, staging area e repository: quello che vogliamo imparare in questa lezione è a tracciarne le differenze.
Per lo scopo che ci prefiggiamo, esiste il comando git diff che può essere utilizzato per valutare:
- le differenze tra un file nella cartella di lavoro e la sua versione indicizzata nella staging area (quindi parliamo di un file che ha subito modifiche dopo il comando git add):
> git diff nome_file
- le differenze tra la versione nel repository locale e quella nella cartella di lavoro (nel caso di modifiche dopo il commit):
> git diff HEAD nome_file
Ciò con cui si deve prendere confidenza è il formato con cui viene espresso l’output. Lo vedremo con un esempio molto semplice.
Immaginiamo che nella nostra cartella di lavoro, creiamo il file lista-spesa.txt dal seguente contenuto:
latte 2 litri 12 uova carote 1 kg mele 3 kg
lo tracciamo con git add e lo modifichiamo così (versione presente nella cartella di lavoro):
latte 3 litri carote 1 kg mele 3 kg banane 6
Invochiamo a questo punto git diff per ottenere una descrizione delle modifiche tra area di lavoro e versione indicizzata. Ecco l’ouput:
diff --git a/lista-spesa.txt b/lista-spesa.txt index 1c6e5a6..1ef1777 100644 --- a/lista-spesa.txt +++ b/lista-spesa.txt @@ -1,4 +1,4 @@ -latte 2 litri -12 uova +latte 3 litri carote 1 kg -mele 3 kg +mele 3 kg +banane 6
Notiamo per prima cosa la notazione @@ -1,4 +1,4 @@. Serve ad indicare le porzioni interessate dalle modifiche nei due file: l’espressione -1,4 indica una porzione di quattro righe a partire dalla prima della versione nella staging area mentre +1,4 la porzione analoga nel file attualmente salvato nella directory di lavoro.
Tutte le righe successive potranno iniziare:
- con uno spazio bianco se la riga non è stata interessata da modifiche;
- con un segno meno per la versione della riga presente nella staging area;
- con un simbolo più per la versione della riga presente nel file della cartella di lavoro.
Il comando git diff come vediamo completa le informazioni di git status. Entrambi sono fondamentali e dobbiamo apprezzarne il senso proprio perchè ci permettono di tenere sotto controllo il nostro flusso di lavoro con git.
Alla prossima lezione!











No Responses to “Git: differenze tra file”