W3docs

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.

gitlog

Определение

Команда 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'?