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

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

Git Лабораторна 61: Recovery після git reset --hard

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

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

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

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

Meta: навчитися відновлювати коміти після помилкового git reset --hard за допомогою reflog.



Krok 1. Створити кілька тестових комітів.

Komandy: cd ~/git_lab1; echo "one" > reset61.txt; git add reset61.txt; git commit -m "Reset demo one"; echo "two" >> reset61.txt; git add reset61.txt; git commit -m "Reset demo two"; echo "three" >> reset61.txt; git add reset61.txt; git commit -m "Reset demo three"



Krok 2. Переглянути короткий log.

Komanda: git log --oneline -n 5

Poyasnennya: зафіксуй хеш останнього коміту для перевірки.



Krok 3. Виконати git reset --hard на один коміт назад.

Komanda: git reset --hard HEAD~1

Poyasnennya: останній коміт зникає з видимої історії.



Krok 4. Перевірити log після reset.

Komanda: git log --oneline -n 5

Poyasnennya: бачиш тільки перші два коміти.



Krok 5. Відкрити reflog.

Komanda: git reflog -n 10

Poyasnennya: знайди запис який відповідає стану до reset з поміткою HEAD@{1} або подібною.



Krok 6. Скопіювати хеш коміту який треба повернути.

Poyasnennya: це хеш останнього коректного коміту перед reset.



Krok 7. Перемкнутися на цей коміт через git reset.

Komanda: git reset --hard ХЕШ_З_REFFLOG

Poyasnennya: робочий каталог і HEAD повертаються до потрібного стану.



Krok 8. Перевірити вміст файлу reset61.txt.

Komanda: cat reset61.txt

Poyasnennya: файл знову містить усі рядки one, two, three.



Krok 9. Зробити коротку нотатку у власному конспекті про послідовність дій при помилковому reset.



Krok 10. Mini zvit.

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