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 5albo 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łęzifeature, a których nie ma wmain.
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.