Leggiamo la storia: log, diff, show e navigazione nel passato
La storia di un progetto non è solo un registro, è una documentazione delle decisioni. Impareremo a leggere la storia in modo informativo: filtrare i commit, vedere cosa è cambiato tra le versioni e comprendere gli hash SHA-1 senza timore. Inoltre, vedremo come distinguere una 'buona storia' da una 'spazzatura' – questo influisce direttamente su come venite percepiti nel team.
- Sarete in grado di leggere la storia del repository e trovare rapidamente il commit desiderato per autore, data o parola chiave.
- Capirete come confrontare le versioni dei file a diversi livelli: directory di lavoro, indice, commit.
- Imparerete a scrivere messaggi di commit secondo gli standard riconosciuti del settore (Conventional Commits).
Simula ng leksyon
La cronologia dei commit è come un diario del progetto
- Git log mostra la storia come un diario capovolto
- Ogni voce è un'istantanea delle modifiche
- Memorizza chi, quando e cosa è stato modificato
- Permette di vedere l'evoluzione del codice
Immaginate che ogni volta che salvate le modifiche in Git, stiate facendo una voce nel diario dello sviluppo. Il comando 'git log' mostra queste voci in ordine cronologico inverso — dalle più recenti alle più vecchie. In questo diario è conservata l'intera cronologia del progetto: chi, quando e quali modifiche ha apportato. Non è solo un elenco di modifiche, ma una storia viva dell'evoluzione del vostro codice. Saper leggere e analizzare questa storia è una competenza fondamentale per lavorare in team. È proprio attraverso la cronologia dei commit che vedete come si è sviluppato il progetto, quali decisioni sono state prese e perché. Approfondiamo ora la struttura di un singolo commit.
Leggere un commit: hash, autore, data
- commit: identificatore univoco tramite hash
- Author: chi e quando ha fatto le modifiche
- Date: timestamp del commit
- Messaggio: cosa è stato modificato
Osservate l'output del comando 'git log'. Ogni voce inizia con una lunga stringa di caratteri — è l'hash del commit, il suo identificatore univoco. Alla destra si vedono l'autore della modifica e la data in cui è stata apportata. Sotto c'è il messaggio del commit, scritto dallo sviluppatore al momento del salvataggio. Notate il formato: prima l'email dell'autore tra parentesi angolari, poi il timestamp. Questi dati aiutano a capire il contesto delle modifiche e, se necessario, contattare l'autore per chiarimenti. Ora che abbiamo analizzato la struttura di un commit, capiamo cos'è un hash e a cosa serve.
#!/bin/bash
cd ~/projects/git-course/
git log -1 --pretty=format:'commit %H%nAuthor: %an <%ae>%nDate: %ad%n%n %s'
L'hash del commit è la vostra chiave per la storia
- L'hash è un'impronta digitale del commit
- Dipende dal contenuto e dai metadati
- Cambiare anche un solo carattere modifica l'hash
- Permette di riferirsi con precisione a qualsiasi versione
L'hash del commit non è una stringa casuale, ma il risultato di una funzione crittografica che trasforma il contenuto del commit in una stringa univoca. Se modificate anche un solo byte nel commit, l'hash cambierà completamente. Questo garantisce l'integrità della cronologia delle modifiche. Conoscendo l'hash, potete accedere a qualsiasi versione del codice come a un segnalibro in un libro. Ad esempio, il comando 'git checkout' seguito dall'hash vi porterà allo stato del progetto al momento di quel commit. Questo è particolarmente utile per annullare modifiche o analizzare quando è comparso un bug. Ora che comprendiamo la struttura della storia, impariamo a filtrarla — perché nei progetti reali i commit possono essere migliaia.
Buong leksyon ay para sa subscription
26 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- La cronologia dei commit è come un diario del progetto
- Leggere un commit: hash, autore, data
- L'hash del commit è la vostra chiave per la storia
- Come trovare i commit di un autore
- Filtrare per data del commit
- Ricerca per testo nei commit
- Combinare i filtri
- Il problema della lettura della cronologia dei commit
- Visualizzazione compatta con --oneline
- Visualizzazione dei branch con --graph
- Il quadro completo con --all
- Cos'è git diff e a cosa serve
- Confrontiamo le modifiche nella directory di lavoro
- Cosa è preparato per il commit: git diff --staged
- Confrontare due qualsiasi commit
- Come esaminare in dettaglio un commit specifico
- Pratica: esaminiamo le modifiche in un commit
- Visualizzazione di un file specifico in un commit
- Ricerca delle ultime modifiche in un file
- Analisi del codice altrui tramite la cronologia
- Ricerca dell'introduzione o della rimozione di una funzione
- Perché i messaggi di commit sono importanti
- Struttura di un messaggio di commit ideale
- Conventional Commits nella pratica
- Refactoring dei brutti commit
- Perché i commit 'fix' sono un anti-pattern
- Atomicità delle modifiche: un commit, un compito
- git add -p: lo strumento salvavita per commit puliti
- Riepilogo e compito
Mga artikulo tungkol sa araling ito
- Mga command ng Git: cheat sheet na may mga halimbawa para sa araw-araw
- git log, diff, show, at blame: paano basahin ang history ng project sa Git
- git bisect: paano hanapin ang commit na sumira sa code
- Git at GitHub: ano ang pagkakaiba at paano sila magkaugnay
- Paano mag-install ng Git sa Windows, macOS, at Linux
Lahat ng leksyon ng kurso
- Introduzione: Git da zero a sviluppatore fiducioso
- Perché serve Git — e perché senza non ti assumono
- Installazione e configurazione: prepariamo Git al primo avvio
- Primo repository: init, add, commit e la magia dell'indice
- Leggiamo la storia: log, diff, show e navigazione nel passato
- Branch: la realtà parallela del tuo codice
- Annullare gli errori: restore, reset, revert — correttamente e con cautela
- GitHub e repository remoti: il tuo codice nel cloud
- Lavoro di squadra: fork, feature branch e pull request
- Conflitti di unione: niente panico — analizziamo e risolviamo
- Processi Git nei team reali: quale workflow scegliere
- Strumenti avanzati: rebase, stash, cherry-pick e tag
- Progetto finale: simuliamo uno sviluppo di gruppo reale