# Флаги для ограничения вывода истории коммитов в Git

Ограничить вывод истории коммитов можно и с учетом времени, когда они были сделаны. Например, флаг `--since=1day` отобразит коммиты, сделанные за `1` день. Полный список флагов для ограничения вывода коммитов смотрите ниже:

Флаг | Описание
--- | ---
`-(n)` | Показывает последние коммиты с учетом указанного числа.
`--since, --after`* | Отображает коммиты, сделанные после указанной даты.
`--until, --before`* | Выводят коммиты, сделанные до указанной даты.
`--author`* | Отображает коммиты для файлов с указанным автором.
`--committer`* | Выводит коммиты, сделанные указанным коммитером, т.е. пользователем, вносящим изменения. Автор файла и коммитер могут являться разными пользователями.
`grep` | Ищет и отображает коммиты, сообщение или примечание которых содержит указанную строку.

К некоторым ограничивающим флагам обязательным требованиям является добавление после их названия знака `=` и параметра, по которому мы ограничиваем вывод истории коммитов. Данные флаги отмечены в таблице `*`.

## Пример . Вывод последних коммитов

Давайте выведем в консоль два последних коммита:

`git log -2`

После выполнения команды мы увидим:

`commit 33498ca885348fba6060ad4c459963d9e756c8b6 (HEAD -> master) Author: root <root@node.com> Date: Tue Sep 12 10:52:30 2023 +0100 Story1 commit bb6945ff7c73c88981a0b2523c32e30f472fd918 Author: root <root@node.com> Date: Tue Sep 12 10:47:27 2023 +0100 text`

## Пример . Вывод коммитов, сделанных после указанной даты

Давайте выведем в консоль коммиты, сделанные после `11` сентября `2023` года:

`git log --since="2023-09-11"`

После выполнения команды мы увидим:

`commit 33498ca885348fba6060ad4c459963d9e756c8b6 (HEAD -> master) Author: root <root@node.com> Date: Tue Sep 12 10:52:30 2023 +0100 Story1 commit bb6945ff7c73c88981a0b2523c32e30f472fd918 Author: root <root@node.com> Date: Tue Sep 12 10:47:27 2023 +0100 text`

## Пример . Вывод коммитов, сделанных до указанной даты

А теперь давайте выведем в консоль коммиты, сделанные до `11` сентября `2023` года:

`git log --until="2023-09-11"`

После выполнения команды мы увидим:

`commit a99c51a34d6a89be9c56127e18a1e574d6188d61 Author: root <root@node.com> Date: Fri Jun 16 15:20:43 2023 +0100 initial commit`

## Пример . Вывод коммитов, сделанные указанным автором файлов

Давайте выведем в консоль все коммиты для файлов, созданных пользователем `'user'`:

`git log --author="user"`

После выполнения команды мы увидим:

`commit 9c51a34d188d61a6a89be9c56127e18a1e574d69 Author: user <user@node.com> Date: Fri Jun 10 10:10:23 2022 +0100 initial commit`

## Пример . Вывод коммитов, сделанных указанным коммитером

А теперь давайте выведем в консоль все коммиты, сделанные пользователем `'root'`:

`git log --committer="root"`

После выполнения команды мы увидим:

`commit 33498ca885348fba6060ad4c459963d9e756c8b6 (HEAD -> master) Author: root <root@node.com> Date: Tue Sep 12 10:52:30 2023 +0100 Story1 commit bb6945ff7c73c88981a0b2523c32e30f472fd918 Author: root <root@node.com> Date: Tue Sep 12 10:47:27 2023 +0100 text commit a99c51a34d6a89be9c56127e18a1e574d6188d61 Author: root <root@node.com> Date: Fri Jun 16 15:20:43 2023 +0100 initial commit`

## Пример . Вывод коммитов, указанное примечание

Давайте выведем в консоль все коммиты, в которых есть строка `'text'`:

`git log --grep "text"`

После выполнения команды мы увидим:

`commit bb6945ff7c73c88981a0b2523c32e30f472fd918 Author: root <root@node.com> Date: Tue Sep 12 10:47:27 2023 +0100 text`
← →
↑