Sconto del 20% su tutti i corsi inserendo nel form il codice SPRING20 | Fino al 30 aprile
Sconto del 20% su tutti i corsi inserendo nel form il codice SPRING20 | Fino al 30 aprile

Guide per aspiranti programmatori

Lezione 19 / 52

Il comando Git diff in Git

git diff è un comando Git multi-uso che permette di visualizzare le differenze tra due data source, che siano essi file, commit, branch oppure altro. In questa sezione vedremo gli utilizzi più tipici di git diff e illustreremo il formato standard con cui sono mostrate tali differenze.

Ecco un esempio pratico usando un repository creato da zero:

$ mkdir repo_for_diff
$ cd repo_for_diff
$ touch diff_test.txt
$ echo "this is a git diff test example" > diff_test.txt
$ git init
Initialized empty Git repository
$ git add diff_test.txt
$ git commit -m "add test file"
[master (root-commit) c5dfcdb] add test file
1 file changed, 1 insertion(+)
create mode 100644 diff_test.txt

Eseguendo ora git diff, non ci sarà alcun output, poiché non ci sono differenze tra il contenuto della working copy e l’ultimo commit (snapshot). Proviamo quindi a cambiare il contenuto del file tracciato nel repository:

$ echo "this is a diff example" > diff_test.txt
$ git diff
diff --git a/diff_test.txt b/diff_test.txt
index 6b0c6cf..b37e70a 100644
--- a/diff_test.txt
+++ b/diff_test.txt
@@ -1 +1 @@
-this is a git diff test example
+this is a diff example

Come leggere questo output?

  • la prima riga mostra le data source che il comando git diff ha usato, a/diff_test.txt b/diff_test.txt (in questo caso l’ultimo snapshot del file e la versione nella working directory)
  • la seconda riga mostra dei metadati interni di Git, in generale è una informazione che può essere ignorata
  • la terza e quarta riga sono indicano la legenda dei due input di diff, serve per leggere la sezione successiva
  • le ultime righe sono il “chunk” (o la lista dei chunk per quei due file) del diff, in cui nella pratica vengono mostrate solo le righe cambiate tra i file (con la legenda -/+ per indicare quale riga è presente in quale file); il chunk inizia con un head (la riga con @@, che indica un summary delle modifiche, in questo caso una riga cambiata)

NOTA nella vita reale, un chunk head potrebbe mostrare qualcosa tipo @@ -34,6 +34,8 @@ che significa “a partire dalla riga 34 del file, sono state rimosse 6 righe e aggiunte 8

Opzioni utili:

git diff

mostra le differenze tra l’attuale contenuto della working area e l’ultimo commit

git diff --staged

mostra le differenze tra l’attuale contenuto della staging area e l’ultimo commit

git diff ./path/to/file`

mostra le differenze solo per il file indicato

$ git log --pretty=oneline
957fbc92b123030c389bf8b4b874522bdf2db72c add feature
ce489262a1ee34340440e55a0b99ea6918e19e7a rename some classes
6b539f280d8b0ec4874671bae9c6bed80b788006 refactor some code for feature
646e7863348a427e1ed9163a9a96fa759112f102 add some copy to body
$ git diff 957fbc92b123030c389bf8b4b874522bdf2db72c ce489262a1ee34340440e55a0b99ea6918e19e7a

esegue il confronto tra due commit

git diff feature-branch..other-feature-branch

esegue il confronto tra due branch; in questo caso, vengono confrontati gli ultimi commit dei due branch (tip) avendo indicato l’operatore “doppio punto” (esistono altri “operatori punto” che permettono di eseguire diff diversi, per esempio con “…” viene confrontato l’ultimo commit comune tra i due branch e il tip del branch indicato a destra

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.