Урок 3 из 8 · 15 мин · обновлено
История изменений: log, diff и show
Как посмотреть список коммитов, увидеть, что именно поменялось в файлах до и после сохранения, и открыть любой коммит из прошлого.
Зачем смотреть историю
История — главная ценность Git. По ней видно, когда появилась ошибка, кто и зачем поменял строку, как выглядел проект неделю назад. В этом уроке — три команды, чтобы её читать.
git log — список коммитов
git log
commit 8c4e2d1a7b...
Author: Анна Смирнова <anna@example.com>
Date: Mon Oct 12 18:30:04 2026 +0300
Добавил стили главной страницы
commit 3f2a1c9e5d...
Author: Анна Смирнова <anna@example.com>
Date: Mon Oct 12 18:12:47 2026 +0300
Добавил разметку главной страницы
Сверху — самые свежие коммиты. У каждого есть хеш (уникальный номер), автор, дата и сообщение. Если история длинная, листайте стрелками, а выйти из просмотра можно клавишей q.
Компактный вид — по строке на коммит:
git log --oneline
8c4e2d1 Добавил стили главной страницы
3f2a1c9 Добавил разметку главной страницы
Для обращения к коммиту хватает первых 7 символов хеша.
git diff — что изменилось
Поменяйте заголовок в index.html и, пока ничего не добавляли в индекс, выполните:
git diff
- <h1>Привет, мир!</h1>
+ <h1>Пиццерия «Тесто»</h1>
- строка с минусом — была и удалена;
- строка с плюсом — добавлена.
Изменённая строка выглядит как пара: старая версия с минусом, новая с плюсом.
После git add обычный git diff уже ничего не покажет: изменения переехали в индекс. Посмотреть их можно так:
git diff --staged
Полезная привычка — перед каждым коммитом заглядывать в git diff --staged. Так вы не сохраните случайную отладочную строку или лишний файл.
git show — открыть коммит из прошлого
git show 3f2a1c9
Команда покажет автора, дату, сообщение и все изменения этого коммита в том же формате, что и git diff.
Удобнее в редакторе
Те же сведения показывают и редакторы. В VS Code во вкладке Source Control видны изменённые файлы, а при клике — сравнение «было и стало» в две колонки. Командная строка при этом остаётся полезной: она одинаково работает везде, в том числе на серверах, где редактора нет.
Попробуйте сами. В своём репозитории поменяйте текст в одном файле. Посмотрите изменения через git diff, добавьте их в индекс и проверьте git diff --staged. Сделайте коммит и найдите его в git log --oneline.
Решение
git diff # видно изменённые строки
git add index.html
git diff # пусто: изменения в индексе
git diff --staged # теперь они здесь
git commit -m "Поменял заголовок главной страницы"
git log --oneline # новый коммит — первой строкой
Если при просмотре истории терминал «завис» и не принимает команды, вы просто внутри режима просмотра — нажмите q.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Какая команда покажет историю коммитов по одной строке на коммит?
git log выводит историю подробно, а с флагом --oneline — компактно: короткий хеш и сообщение.
-
Что покажет git diff, если вы изменили файл, но ещё не выполнили git add?
git diff сравнивает рабочую папку с индексом: видно каждую изменённую строку. После git add те же изменения показывает git diff --staged.
-
Что означает строка, начинающаяся с плюса, в выводе git diff?
Плюс — добавленная строка, минус — удалённая. Изменённая строка выглядит как пара: старая с минусом, новая с плюсом.
-
Как открыть конкретный коммит из прошлого?
git show с хешем коммита покажет его автора, дату, сообщение и все изменения.