Продвинутый Git
Amanda Crawford-Adamo
Software and Data Engineer
.git/logs/refs/heads/
| Параметр | Git Reflog | Git Log |
|---|---|---|
| Назначение | Показывает обновления ссылок и перезаписи в локальном репозитории | Показывает только историю коммитов |
| Область | Только локальный репозиторий | Локальный и удалённые репозитории |
| Содержимое | Все обновления ссылок (коммиты, сбросы, слияния и т. д.) | Только коммиты |
| Хранение | Временно (обычно 90 дней) | Постоянно (часть истории репозитория) |
| Применение | Восстановление потерянных коммитов, анализ последних действий | Просмотр истории проекта, анализ разработки функций |
git reflog
git reflog show
git reflog expire

| Компонент | Описание |
|---|---|
| short-hash | Сокращённый хеш коммита |
| ref | Обычно HEAD, но может быть именем ветки |
| index | Позиция в reflog (0 — самая последняя) |
| action | Тип действия (commit, reset, merge и т. д.) |
| descriptions | Описание действия |
since = показать записи начиная с этого момента
git reflog --since "time-qualifer"
until = показать записи до этого момента
git reflog --until "time-qualifer"
git reflog --since="1 week ago"
git reflog --until="yesterday"
git reflog --until="2024-01-01"
etl-featureКак восстановить ветку etl-feature?
git reflog
git checkout <hash>
git checkout -b <branch-name>
| Тип сброса | Команда | Рабочая директория | Индекс (staging) |
|---|---|---|---|
| Soft | git reset --soft <commit> |
Без изменений | Изменения остаются в индексе |
| Mixed (по умолчанию) | git reset --mixed <commit> |
Без изменений | Изменения убраны из индекса |
| Hard | git reset --hard <commit> |
Изменения удалены | Изменения удалены |
Как откатиться к предыдущей версии ETL-скрипта?
git reflog
git reset --soft HEAD@{1}
Reflog — локальная машина времени на случай ошибок

Продвинутый Git