ตัวอย่างบทเรียน

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.

hash del commit git log git diff
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • 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).

จุดเริ่มต้นของบทเรียน

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.

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 26 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. La cronologia dei commit è come un diario del progetto
  2. Leggere un commit: hash, autore, data
  3. L'hash del commit è la vostra chiave per la storia
  4. Come trovare i commit di un autore
  5. Filtrare per data del commit
  6. Ricerca per testo nei commit
  7. Combinare i filtri
  8. Il problema della lettura della cronologia dei commit
  9. Visualizzazione compatta con --oneline
  10. Visualizzazione dei branch con --graph
  11. Il quadro completo con --all
  12. Cos'è git diff e a cosa serve
  13. Confrontiamo le modifiche nella directory di lavoro
  14. Cosa è preparato per il commit: git diff --staged
  15. Confrontare due qualsiasi commit
  16. Come esaminare in dettaglio un commit specifico
  17. Pratica: esaminiamo le modifiche in un commit
  18. Visualizzazione di un file specifico in un commit
  19. Ricerca delle ultime modifiche in un file
  20. Analisi del codice altrui tramite la cronologia
  21. Ricerca dell'introduzione o della rimozione di una funzione
  22. Perché i messaggi di commit sono importanti
  23. Struttura di un messaggio di commit ideale
  24. Conventional Commits nella pratica
  25. Refactoring dei brutti commit
  26. Perché i commit 'fix' sono un anti-pattern
  27. Atomicità delle modifiche: un commit, un compito
  28. git add -p: lo strumento salvavita per commit puliti
  29. Riepilogo e compito

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. Introduzione: Git da zero a sviluppatore fiducioso
  2. Perché serve Git — e perché senza non ti assumono
  3. Installazione e configurazione: prepariamo Git al primo avvio
  4. Primo repository: init, add, commit e la magia dell'indice
  5. Leggiamo la storia: log, diff, show e navigazione nel passato
  6. Branch: la realtà parallela del tuo codice
  7. Annullare gli errori: restore, reset, revert — correttamente e con cautela
  8. GitHub e repository remoti: il tuo codice nel cloud
  9. Lavoro di squadra: fork, feature branch e pull request
  10. Conflitti di unione: niente panico — analizziamo e risolviamo
  11. Processi Git nei team reali: quale workflow scegliere
  12. Strumenti avanzati: rebase, stash, cherry-pick e tag
  13. Progetto finale: simuliamo uno sviluppo di gruppo reale