← До списку лабораторних по Git
Повний опис / сценарій лабораторної:
Мета: навчитися безпечно скасовувати локальні зміни різного рівня від одного файла до цілого коміту. Крок 1. Створити нову зміну без коміту. Команда: cd ~/git_lab1 && echo "temporary change" >> readme.txt Крок 2. Подивитися diff. Команда: git diff Пояснення: бачимо доданий рядок. Крок 3. Скасувати зміни тільки у цьому файлі. Команда: git restore readme.txt Пояснення: файл повернеться до стану останнього коміту. Крок 4. Зробити зміну, додати її в індекс і потім скасувати зі staged. Команди: echo "staged change" >> readme.txt; git add readme.txt; git restore --staged readme.txt Пояснення: команда прибирає файл зі staged але не чіпає робочий каталог. Крок 5. Залишити одну зміни в робочому каталозі для демонстрації reset. Команда: echo "for reset demo" >> readme.txt; git add readme.txt; git commit -m "Temp commit for reset demo" Крок 6. Подивитися історію з короткими хешами. Команда: git log --oneline -n 3 Пояснення: зафіксуйте хеш попереднього коміту до тимчасового. Крок 7. Виконати мʼякий reset. Команда: git reset --soft ХЕШ_ПОПЕРЕДНЬОГО Пояснення: HEAD рухається назад, але зміни залишаються у staged. Крок 8. Виконати змішаний reset для очищення staged. Команда: git reset ХЕШ_ПОПЕРЕДНЬОГО Пояснення: зміни залишаться тільки у робочому каталозі. Крок 9. За потреби повністю скасувати локальні зміни. Команда: git restore readme.txt Пояснення: будьте обережні, після цього локальні зміни втратяться. Крок 10. Міні звіт. Завдання: опишіть різницю між git reset --soft, git reset --mixed та git reset --hard на прикладах.