Урок 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.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Какая команда покажет историю коммитов по одной строке на коммит?

  2. Что покажет git diff, если вы изменили файл, но ещё не выполнили git add?

  3. Что означает строка, начинающаяся с плюса, в выводе git diff?

  4. Как открыть конкретный коммит из прошлого?