Исследование истории
Одна из главных сильных сторон 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, чтобы сохранить на потом
В следующих упражнениях вы попрактикуетесь с каждым из этих инструментов.