Як відкатити зміни в конкретному файлі до стану певного коміту?
Іноді в процесі розробки виникає необхідність повернути один або кілька файлів до того стану, в якому вони перебували в минулому, не чіпаючи при цьому інші зміни в проєкті. Система контролю версій Git дозволяє точково керувати історією файлів без необхідності робити глобальний відкат всього репозиторію або втрачати поточний прогрес.
Найпростіший спосіб дістати стару версію файлу з історії — використовувати команду git checkout або сучасну git restore. Щоб замінити файл у поточній робочій директорії його версією з певного коміту, потрібно виконати команду git checkout із зазначенням хешу коміту та шляху до потрібного файлу. Це перезапише вміст файлу актуальними даними з минулого.
Після виконання цієї команди файл автоматично потрапить у робочу область як змінений, і ви зможете побачити різницю за допомогою git diff. Якщо ви хочете одразу зафіксувати цей стан, файл потрібно буде знову додати в індекс через git add і зробити новий коміт, який зафіксує повернення до старого коду.
Цей підхід вкрай зручний для відновлення випадково видалених або зіпсованих файлів, коли ви точно знаєте, в якому робочому стані вони перебували раніше. Головне — переконатися, що ви вказали правильний хеш коміту, щоб не переплутати версії та не втратити важливі проміжні наработки по проєкту.