Просмотр истории
Как я уже упоминал, команда 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=2git 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. Это очень пригодится, когда проект разрастётся и понадобится искать конкретные правки.
Давай перейдём к сравнению коммитов.
Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.
(требуется войти в аккаунт)