Тур по Git
История и отмена изменений / Урок 3.1

Исследование истории

Одна из главных сильных сторон Git — возможность путешествовать во времени. Каждый коммит — это снимок состояния, который можно просмотреть, сравнить или к которому можно вернуться.

Инструменты для исследования

Git предоставляет несколько команд для понимания того, что произошло и когда:

  • git log — Просмотр хронологии коммитов
  • git diff — Сравнение версий файлов между состояниями
  • git stash — Временное сохранение незафиксированных изменений
  • git reset — Перемещение HEAD и отмена коммитов

Хронология коммитов

Каждый коммит фиксирует:

  • Что изменилось (дерево/снимок)
  • Кто внёс изменение (автор)
  • Когда это произошло (временная метка)
  • Зачем это было сделано (сообщение коммита)
  • Что было до этого (родительские коммиты)

Это образует цепочку, по которой можно пройти в обратном направлении в любой момент.

Три области для сравнения

При использовании git diff вы сравниваете три области:

Рабочая директория ←→ Область подготовки ←→ Последний коммит
     (редактирование)      (git add)            (git commit)
  • git diff — Рабочая директория vs. область подготовки
  • git diff --staged — Область подготовки vs. последний коммит
  • git diff HEAD — Рабочая директория vs. последний коммит

Когда что-то идёт не так

Все совершают ошибки. Git предоставляет инструменты для восстановления:

  • Неправильное сообщение коммита? → git commit --amend
  • Закоммитили слишком рано? → git reset --soft HEAD~1
  • Нужно начать заново? → git reset --hard HEAD~1
  • Работа в процессе? → git stash, чтобы сохранить на потом

В следующих упражнениях вы попрактикуетесь с каждым из этих инструментов.