git restore
Отменить правки в файле или убрать его из индекса
Что делает
Без флагов git restore возвращает файл к версии из индекса, а если файл не добавляли, то к последнему коммиту. Проще говоря, выбрасывает правки, которые ещё не прошли через git add.
С флагом --staged команда работает с индексом: убирает оттуда файл, а правки в самом файле остаются. Это действие, обратное git add. Команда появилась в git 2.23, раньше то же делали через git checkout -- <файл> и git reset <файл>.
Осторожно. git restore <файл> без --staged стирает незакоммиченные правки в файле. Вернуть их нельзя: git их нигде не сохранял.
Синтаксис
git restore <файл>
git restore --staged <файл>Примеры
Отменить несохранённые в индекс правки в src/app.js
git restore src/app.jsто же самое:
git checkout -- src/app.jsrestore— вернуть файл к версии из индексаsrc/app.js— файл
Убрать src/app.js из индекса, сохранив правки в файле
git restore --staged src/app.jsто же самое:
git reset HEAD src/app.js,git reset src/app.jsrestore— вернуть--staged— только индекс, файл не трогатьsrc/app.js— файл
Связанные команды
- git add — Добавить изменения в индекс, чтобы они попали в следующий коммит
- git status — Показать, что изменилось в папке и что уже добавлено в индекс
- git reset — Передвинуть ветку на другой коммит, например отменить последние коммиты