git log
git log: показать историю (англ. log — журнал) коммитов.
Команда git log используется для вывода истории коммитов Git-репозитория. Она показывает список всех коммитов, добавленных в репозиторий, вместе с информацией о каждом: хешем коммита, автором, датой и сообщением коммита. Эта команда невероятно полезна для изучения истории проекта, отслеживания изменений во времени и поиска конкретных коммитов, которые добавили новые возможности или внесли ошибки.
По умолчанию git log выводит коммиты в обратном хронологическом порядке — от новых к старым. Каждый коммит имеет уникальный хеш — строку из 40 символов, которая однозначно его идентифицирует. Сообщение коммита кратко описывает внесённые изменения и помогает понять цель каждого сохранения.
В git log есть много опций для настройки вывода: например, фильтрация по автору или диапазону дат, показ только определённых веток или отображение изменений, внесённых в каждом коммите. Умение эффективно использовать git log здорово помогает ориентироваться в истории Git-репозитория и понимать её.
Некоторые команды Git, например git log, могут переводить терминал в режим пейджера (pager), который предназначен для просмотра длинных списков. В этом режиме можно прокручивать вывод с помощью клавиш и на клавиатуре (или PageUp и PageDown для быстрой прокрутки). Чтобы выйти из режима пейджера, нажми q.
Примеры
Показать историю коммитов в стандартном виде:
git logcommit c9dfc6eeeeb49a9661f39f80c587e9cc10a12c70 (HEAD -> main)
Merge: c369baa 2a0c1b5
Author: Elon Tusk <elon@dix.com>
Date: 2025-11-12
Merge branch 'feature/cart' into main
commit c369baab2bd17ec1023a7af5f967b0fac8372d17
Author: Elon Tusk <elon@dix.com>
Date: 2025-11-12
Update main branch
commit 2a0c1b53f2ce8176a93000e33226bb637f31d864 (feature/cart)
Author: Elon Tusk <elon@dix.com>
Date: 2025-11-12
Add cart total calculation
commit 39c461a87ac0d283dd892b7abe74fa61175f71a8
Author: Elon Tusk <elon@dix.com>
Date: 2025-11-12
Add cart model
commit 8ca0133bc67908e5ac49d452aaa8e00a52d18590
Author: Elon Tusk <elon@dix.com>
Date: 2025-11-12
Initial commitПоказать историю с сокращёнными хешами коммитов в упрощённом формате:
git log --onelinec9dfc6e (HEAD -> main) Merge branch 'feature/cart' into main
c369baa Update main branch
2a0c1b5 (feature/cart) Add cart total calculation
39c461a Add cart model
8ca0133 Initial commitПоказать историю с графическим отображением структуры веток:
git log --oneline --graph* c9dfc6e (HEAD -> main) Merge branch 'feature/cart' into main
|\
* | c369baa Update main branch
| * 2a0c1b5 (feature/cart) Add cart total calculation
| * 39c461a Add cart model
|/
* 8ca0133 Initial commitПоказать историю коммитов в кастомном формате: с сокращённым хешем коммита, датой автора, темой и информацией о ветках. Для настройки вывода можно использовать множество заполнителей (плейсхолдеров). Если понадобится, полный список есть в документации Git.
git log --pretty=format:"%h %ad | %s%d [%an]"То же самое с более современным и коротким синтаксисом:
git log --format="%h %ad | %s%d [%an]"c9dfc6e 2025-11-12 | Merge branch 'feature/cart' into main (HEAD -> main) [Elon Tusk]
c369baa 2025-11-12 | Update main branch [Elon Tusk]
2a0c1b5 2025-11-12 | Add cart total calculation (feature/cart) [Elon Tusk]
39c461a 2025-11-12 | Add cart model [Elon Tusk]
8ca0133 2025-11-12 | Initial commit [Elon Tusk]Показать историю коммитов для конкретного файла:
Обрати внимание, что специальный флаг -- используется для того, чтобы подсказать Git, что все последующие аргументы — это пути к файлам. Это необходимо, чтобы избежать путаницы, если путь к файлу совпадает с названием ветки или коммита.
git log -- path/to/file.txtПоказать коммиты за определённый период времени:
git log --since="2023-01-01" --until="2023-01-31"Показать историю коммитов для конкретной ветки:
git log new-blog-design-branchПоказать историю коммитов между двумя коммитами:
git log 9ds73k2..5ka4j3d.gitignoregit checkoutgit configgit taggit worktree