← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 20: Повернення втрачених комітів

Технологія: Git

Номер лабораторної: 20 · Рівень: middle

Тема: Відновлення після помилок: git reflog

Повний опис / сценарій лабораторної:

Мета: навчитися користуватися git reflog щоб знаходити старі положення HEAD і повертатися до них при аварійних ситуаціях.



Крок 1. Переглянути поточну історію.

Команда: cd ~/git_lab1 && git log --oneline -n 5



Крок 2. Зробити тестовий коміт.

Команди: echo "reflog test" >> reflog.txt; git add reflog.txt; git commit -m "Reflog demo commit"



Крок 3. Виконати помилковий reset який відкидає останній коміт.

Команда: git reset --hard HEAD~1

Пояснення: коміт з reflog.txt зникає з гілки.



Крок 4. Перевірити історію.

Команда: git log --oneline -n 5

Пояснення: нового коміту більше немає.



Крок 5. Використати git reflog.

Команда: git reflog

Пояснення: у виводі видно всі переміщення HEAD включно з reset.



Крок 6. Знайти запис перед reset де HEAD вказував на потрібний коміт.

Пояснення: зверніть увагу на хеш у цьому рядку.



Крок 7. Повернутися до того коміту.

Команда: git reset --hard ХЕШ_З_REFFLOG

Пояснення: гілка знову буде містити втрачений коміт.



Крок 8. Перевірити вміст reflog.txt.

Команда: cat reflog.txt

Пояснення: рядок "reflog test" має повернутися.



Крок 9. Обговорити особливості збереження reflog у часі.

Пояснення: записи reflog з часом очищаються відповідно до налаштувань gc.



Крок 10. Міні звіт.

Завдання: опишіть кроки які ви зробите якщо випадково зробите git reset --hard origin/main замість локального хешу.