6. История

Просмотр истории

Как я уже упоминал, команда git log — главный инструмент для изучения истории коммитов. Давай запустим её ещё раз и посмотрим на результат.

Задача
Пройдено

Выполни команду git log, чтобы посмотреть историю коммитов.

Подсказка: Некоторые Git-команды, такие как git log, могут перевести терминал в постраничный режим просмотра, с которым удобнее смотреть на длинные списки. В этом режиме можно прокручивать вывод с помощью стрелок и на клавиатуре. Для выхода нажми q.

Отлично! Список должен быть похож на этот (хеши коммитов, даты, имя и email, конечно, будут другими):

Результат:
commit 11a3f60fe6520fb6f83306d94765ac54f8964be0
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Linked styles to hello.html
 
commit 7d5aa020c9b3cf2cb5a21575a33396f36e783cd4
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added CSS styles
 
commit 346ca091076783c70623aba03fb7139d3d27134f
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added H1, HTML, and BODY tags to hello.html
 
commit 571a4dd16430d5cc89cd2d509bdfbf097d3db63a
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Initial commit

Проблема со стандартным выводом git log в том, что он слишком подробный. Каждый коммит занимает несколько строк, и с длинной историей это быстро превращается в кашу. К счастью, у git log есть много опций для настройки вывода.

Одна из самых полезных — --oneline, которая сжимает каждый коммит до одной строки. Давай проверим.

Запустить в терминале:
git log --oneline
Задача
Пройдено

Выполни git log --oneline, чтобы увидеть более компактную историю коммитов.

Вывод должен стать намного лаконичнее:

Результат:
11a3f60 Linked styles to hello.html
7d5aa02 Added CSS styles
346ca09 Added H1, HTML, and BODY tags to hello.html
571a4dd Initial commit

Гораздо лучше, правда? С --oneline можно быстро пробежаться по истории и найти нужный коммит.

Полезно знать!

У команды git log есть множество других полезных флагов. Вот несколько примеров. Если захочешь попробовать пример с --author, замени Your Name на имя, которое настроено в Git:

Запустить в терминале:
git log --oneline --max-count=2
git log --oneline --since="5 minutes ago"
git log --oneline --until="5 minutes ago"
git log --oneline --author="Your Name"
git log --oneline --all
Задача
Пройдено

Попробуй несколько вариаций git log из списка выше и посмотри, как меняется вывод.

Как видишь, git log умеет сужать историю и менять вид вывода. Флаги можно сочетать, чтобы быстрее найти нужные коммиты.

Например, давай попробуем более продвинутый вариант:

Запустить в терминале:
git log --format="%h %ad | %s%d [%an]" --date=short
Задача
Пройдено

Запусти эту команду git log и попробуй расшифровать её вывод.

Должно получиться примерно так. И снова: хеши, даты и имя автора будут отличаться:

Результат:

11a3f60 2024-03-15 | Linked styles to hello.html (HEAD -> main) [Your Name] 7d5aa02 2024-03-15 | Added CSS styles [Your Name] 346ca09 2024-03-15 | Added H1, HTML, and BODY tags to hello.html (tag: 1.0) [Your Name] 571a4dd 2024-03-15 | Initial commit [Your Name]

Вот что делает каждая часть этой команды:

  • --format="..." задаёт формат вывода.
  • %h — сокращённый хеш коммита.
  • %ad — дата коммита.
  • | — просто визуальный разделитель.
  • %s — сообщение коммита.
  • %d — декорации коммита (например, указатели веток или теги).
  • %an — имя автора.
  • --date=short оставляет краткий формат даты.
Отлично!

Если этот формат покажется удобным, его можно сделать форматом по умолчанию. Давай так и поступим для этого репозитория. Кстати, если захочешь применять этот формат вообще во всех своих репозиториях, просто добавь флаг --global к командам ниже.

Запустить в терминале:
git config format.pretty "%h %ad | %s%d [%an]"
git config log.date short
Задача
Пройдено

Сделай новый формат лога форматом по умолчанию с помощью команд выше.

На заметку: Это повлияет только на текущий репозиторий. Чтобы задать настройку глобально, добавь флаг --global после каждого git config.

Супер! Теперь мы разобрали, как эффективно просматривать историю коммитов с помощью git log. Это очень пригодится, когда проект разрастётся и понадобится искать конкретные правки.

Давай перейдём к сравнению коммитов.

Next step
Хочешь попробовать Сюжетный режим?

Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.

Сюжетный режим
БЕСПЛАТНО
(требуется войти в аккаунт)