git log
On this page you will find information about git log command and its usage, as well as find the common options and see examples with brief explanation.

Определение
Команда git log показывает зафиксированные снимки (snapshots). Она используется для просмотра и фильтрации истории проекта, а также для поиска конкретных изменений. В отличие от git status, который контролирует рабочую директорию и область индексации (staging area), git log работает только с уже зафиксированной историей.
Использование
Команда git log — это инструмент для изучения истории репозитория и поиска конкретной версии проекта. Вывод лога можно настраивать по-разному: от фильтрации коммитов до отображения их в полностью заданном пользователем формате. Ниже приведен список наиболее часто используемых конфигураций git log:
| git log | Описание |
|---|---|
| git log | По умолчанию отображает всю историю коммитов. Использует пробел для прокрутки и q для выхода, если вывод лога занимает несколько экранов. |
| git log -n <limit> | Ограничивает количество отображаемых коммитов. Например, git log -n 2 покажет только 2 коммита. |
| git log --oneline | Отображает каждый коммит в одной строке, что удобно для быстрого обзора истории проекта. |
| git log --stat | Помимо информации git log, включает измененные файлы и количество добавленных или удаленных в них строк. |
| git log -p | Показывает патч для каждого коммита, а также его полный diff. |
| git log --author="<pattern>" | Ищет коммиты по указанному автору. Аргумент <pattern> может быть строкой или регулярным выражением. |
| git log --grep="<pattern>" | Ищет коммиты по сообщению коммита. Аргумент <pattern> может быть строкой или регулярным выражением. |
| git log <since>..<until> | Отображает только коммиты, которые произошли между аргументами <since> и <until>. Оба могут быть идентификатором коммита, именем ветки, HEAD или любым другим типом ссылки на ревизию. |
| git log <file> | Отображает коммиты, в которых указан файл. Это упрощает просмотр истории конкретного файла. |
| git log --graph --decorate --oneline | Флаг --graph рисует текстовый график коммитов слева от сообщений коммитов. Флаг --decorate добавляет имена веток или тегов отображаемых коммитов. Флаг --oneline отображает информацию о коммите в одной строке, что упрощает быстрый просмотр коммитов. |
| git log --since=<date> | Показывает коммиты, сделанные после указанной даты. |
| git log --until=<date> | Показывает коммиты, сделанные до указанной даты. |
| git log --all | Показывает коммиты из всех веток репозитория. |
Пояснение
Все вышеперечисленные опции можно объединить в следующую команду:
git log
git log --author="Bob Smith" -p w3docs.txtПриведенный пример покажет полный diff всех изменений, которые автор внес в файл w3docs.txt.
Синтаксис .. используется для сравнения веток:
git log
git log --oneline master..some-featureЭтот пример показывает краткий обзор всех коммитов, которые находятся в some-feature, а не в master.
Практика
Какие функциональные возможности и опции есть у команды 'git log'?