git log în Git

Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.

Sintaxă comandă
git log [opțiuni] [ramură_sau_fișier...]

Ce face git log

Comanda git log parcurge lanțul de commit-uri pornind de la cel mai recent (HEAD) înapoi către începutul proiectului.

Combinația git log --oneline --graph --all este una dintre cele mai apreciate comenzi vizuale din terminal: desenează un graf ASCII colorat al tuturor ramurilor, arătând unde s-au despărțit și unde s-au unit.

Opțiuni și argumente

Opțiune / Parametru Descriere
--oneline Comprimă fiecare commit pe o singură linie (hash scurt de 7 caractere + mesaj).
--graph Desenează un grafic text în partea stângă pentru a evidenția ramurile și fuziunile (merge-urile).
-n NUMĂR Limitează afișarea la ultimele N commit-uri (ex. -n 5).
--author=NUME Filtrează commit-urile create de un anumit autor.
--since=DATĂ, --until=DATĂ Filtrează commit-urile create într-un anumit interval de timp (ex. --since="2 weeks ago").
-p, --patch Afișează și modificările reale de cod (diff) introduse de fiecare commit în parte.

Exemple

Exemplul 1: Afișarea istoricului pe o singură linie

Creăm câteva commit-uri și le inspectăm în format compact.

git init -b main demo_log >/dev/null
cd demo_log
git config user.name "Ana" && git config user.email "ana@exemplu.ro"
echo "v1" > f.txt && git add f.txt && git commit -m "Commit initial" >/dev/null
echo "v2" > f.txt && git add f.txt && git commit -m "Actualizare text" >/dev/null
git log --oneline

Rezultat

df5bf3b Actualizare text
b2cdaaf Commit initial

Exemplul 2: Grafic vizual al ramurilor în terminal

Opțiunea –graph afișează ramificațiile și îmbinările proiectului.

git log --oneline --graph --all

Ieșire în terminal

* 7a2b1c4 (HEAD -> main, origin/main) Adauga modulul de plati
*   f4e5d6c Merge branch 'feature/login' into main
|\  
| * 3b2a1c0 (feature/login) Implementeaza autentificare OAuth
| * 1a2b3c4 Creaza formularul de login
|/  
* e5d4c3b Configuratie de baza

Greșeli frecvente

  • Blocarea în paginatorul less atunci când istoricul este lung (se apasă tasta q pentru a reveni la linia de comandă).

Comenzi înrudite

  • git show: Afișează informații detaliate și diferențele de cod (diff) ale unui commit, etichetă sau fișier istoric.
  • git diff: Afișează diferențele de cod (linie cu linie) între directorul de lucru, staging sau două versiuni diferite.
  • git blame: Afișează autorul, data și hash-ul commit-ului care a modificat ultima dată fiecare rând dintr-un fișier.
  • git reflog: Jurnalul de siguranță al depozitului: înregistrează fiecare mutare a indicatorului HEAD și permite recuperarea commit-urilor pierdute.