Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «У чому різниця між git restore і git reset?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`git restore`** скасовує зміни у файлах і staging area, не торкаючись історії комітів, а **`git reset`** переміщує вказівник гілки і може переписувати історію. **Ключове:** `git restore` працює тільки з файлами, тоді як `git reset` працює з комітами та станом гілки.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення`git restore` і `git reset` використовуються для скасування змін, але працюють **на різних рівнях і з різними наслідками**. --- ## `git restore` - відкат файлів `git restore` призначений **тільки для роботи з файлами**. Що робить: - скасовує зміни в робочому дереві - прибирає файли зі staging area (unstage) - **не працює з історією комітів** - **не змінює історію** Приклади: ```bash git restore file.txt # відкотити файл у working directory git restore --staged file.txt # прибрати файл зі staging area ``` Використовується, коли потрібно: - скасувати локальні зміни у файлі - прибрати файл з індексу перед комітом --- ## `git reset` - відкат стану та історії `git reset` працює **з вказівником гілки та комітами**. Що робить: - переміщує вказівник гілки (HEAD) - може змінювати staging area - може змінювати working directory - **може переписувати історію** Режими: ```bash git reset --soft # змінює тільки історію git reset --mixed # історія + staging area (типово) git reset --hard # історія + staging area + working directory ``` Використовується, коли потрібно: - скасувати коміт - відкотити гілку назад - повністю видалити зміни --- ## Ключова різниця | Критерій | git restore | git reset | |---|---|---| | Працює з файлами | Так | Частково | | Працює з комітами | Ні | Так | | Змінює історію | Ні | Так | | Безпечний для public гілок | Так | Ні | | Основне призначення | відкат змін | відкат стану | --- ## Коротке формулювання для співбесіди > `git restore` використовується для скасування змін у файлах і staging area без зміни історії. > `git reset` використовується для відкату комітів і стану гілки та може переписувати історію.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.