git log: история проекта
Обновлено 31 июля 2026 г.
git log показывает историю репозитория: коммиты от самого свежего к самому старому, у каждого свой автор, дата и сообщение.
Команда только читает и ничего не меняет, так что запускать её можно сколько угодно. С неё начинают знакомство с чужим проектом, ею же ищут момент, в который что-то сломалось.
$ git log
commit d5e5bbe9321944e44494ac88ad12ab824f9db5a0 (HEAD -> main)
Author: Anna Petrova <anna@example.com>
Date: Tue Mar 17 11:05:19 2026 +0300
список покупок
commit ebccf34a6aec7995dd23300865ebb6ce73afec22
Author: Anna Petrova <anna@example.com>
Date: Tue Mar 17 10:31:02 2026 +0300
рецепт: молоко и порядок шаговВерхний коммит - самый свежий по времени, под ним предыдущий, и так до первого. Сорок символов после слова commit - это хеш, уникальный идентификатор снимка; в командах хватает первых семи, git догадается сам. Пометка HEAD -> main показывает, где ты сейчас стоишь. Длинную историю git отдаёт постраничному просмотрщику: листай пробелом, выходи клавишей q.
Компактный вид и фильтры
--oneline сжимает каждый коммит до строки, и вся история влезает на экран:
$ git log --oneline
d5e5bbe (HEAD -> main) список покупок
ebccf34 рецепт: молоко и порядок шагов
438482b рецепт: первая версияДальше выборку сужают флагами, и они складываются друг с другом:
$ git log -n 5 # только пять последних коммитов
$ git log --oneline --author=Anna # где в имени или почте автора есть "Anna"
$ git log --since=2026-03-01 # начиная с этой даты
$ git log --since=2026-03-01 --until=2026-03-18
$ git log --oneline -- report.txt # только коммиты, тронувшие этот файл--graph дорисовывает слева схему ветвлений:
$ git log --oneline --graph
* a816435 Merge branch 'intro'
|\
| * e78a55c отчёт: вступление
* | 4f548f6 покупки: добавил яйца
|/
* d5e5bbe список покупокЗвёздочка - коммит, вертикальные линии - ветки. Они расходятся там, где работа шла параллельно, и снова сходятся в коммите слияния.
Частые ошибки
Пустой вывод в свежем репозитории пугает зря: коммитов ещё нет, показывать нечего. --author ищет подстроку в имени и почте и различает регистр, поэтому --author=anna найдёт коммиты по адресу anna@example.com, а --author=ANNA не найдёт ничего. У --since формат свободный: годятся и --since=2026-03-01, и --since="2 weeks ago", а время считается по часовому поясу твоей машины. Если вывод занял экран и приглашение не вернулось - это просмотрщик, выход по q.
Где это в учебнике
Подробный разбор - Глава 3. Три зоны и первый коммит. Рядом пригодятся git diff и commit message.
Потренироваться руками - в интерактивном уроке Три зоны и коммит.