git log

Wyświetla historię commitów repozytorium.

git log wyświetla historię commitów w bieżącej gałęzi — od najnowszego do najstarszego. To Twoja maszyna czasu w repozytorium: sprawdzisz, kto, kiedy i z jakim opisem wprowadził zmiany, znajdziesz hash potrzebny do git revert czy git checkout i ogarniesz, co się działo zanim wskoczyłeś do projektu. Domyślnie git wrzuca wynik do pagera (zwykle less), więc wyjdziesz z niego klawiszem q.

Składnia i najważniejsze opcje

Podstawowa forma: git log [opcje] [zakres] [-- ścieżka]

  • --oneline — jeden commit w jednej linii (skrócony hash + tytuł). Najczęściej używana opcja do szybkiego przeglądu.
  • --graph — rysuje tekstowy graf gałęzi i merge’y po lewej stronie. Najlepiej łączyć z --oneline.
  • -n — ogranicza wynik do N ostatnich commitów (np. -n 5 albo krócej -5).
  • --stat — pokazuje, które pliki zmieniono i ile linii dodano/usunięto.
  • -p (albo --patch) — wyświetla pełny diff każdego commita.
  • --author= — filtruje po autorze, np. --author=Pawel.
  • --since= i --until= — zawęża zakres czasowy, np. --since="2 weeks ago".
  • --all — pokazuje commity ze wszystkich gałęzi, nie tylko z aktualnej.

Przykłady użycia

  • git log --oneline -10 — dziesięć ostatnich commitów, po jednej linii. Twój chleb powszedni.
  • git log --oneline --graph --all — wizualna mapa wszystkich gałęzi i ich rozejść. Idealne, gdy zgubiłeś się w merge’ach.
  • git log --author="Ania" --since="2026-06-01" — co Ania nawrzucała od początku czerwca.
  • git log -p -- src/index.js — pełna historia zmian jednego pliku, z diffami. Świetne do śledzenia, kiedy wkradł się bug.
  • git log --oneline main..feature — commity, które są w gałęzi feature, a których nie ma w main.

Częste błędy i pułapki

Najczęstsza pomyłka początkujących: panika, że „terminal się zawiesił”, podczas gdy to tylko pager czeka na klawisz q. Pamiętaj też, że -- przed ścieżką nie jest ozdobnikiem — oddziela nazwy plików od nazw gałęzi. Bez tego git może uznać index.js za nazwę rewizji i sypnąć błędem, jeśli istnieje taka gałąź.

Uwaga na zakres: git log A..B (dwie kropki) to zupełnie co innego niż git log A...B (trzy kropki) — pierwsze pokazuje commity osiągalne z B, ale nie z A, drugie symetryczną różnicę między obiema. Łatwo o pomyłkę. git log jest w pełni przenośne między systemami (Linux, macOS, Windows), bo to wbudowane polecenie gita, a nie systemowe narzędzie — różnice zobaczysz najwyżej w działaniu pagera.

Pamiętaj też, że domyślnie widzisz tylko historię bieżącej gałęzi. Jeśli „brakuje” commitów, dorzuć --all albo wskaż konkretną gałąź.

Powiązane komendy: git show, git diff, git blame, git reflog, git shortlog.