Удаление незакоммиченных изменений
Бывает же, сделал изменения, еще не закоммитил и передумал, хочешь удалить эти изменения (вернуть в состояние прошлого коммита). Под удалением изменений подразумевается и возврат удаленных файлов.
Удалить изменения в файле можно так:
git restore <file>
Если файл был изменен и добавлен в индекс, то убрать его из индекса и удалить изменения можно двумя последовательными командами:
git restore --staged <file> # Эта команда уберет файл из индекса
git restore <file> # А эта удалит изменения
Удаление изменений во всех файлах, включая проиндексированные (я половину из них еще добавил в индекс):
git reset --hard
Но эта команда не удаляет изменения в untracked (которые еще ни разу не были в индексе) файлах.
Кстати, удалить все новые, не отслеживаемые изменения (новые файлы и т.д.) можно так:
git clean -f
Удаление файла из отслеживания
Например, создал файл , закоммитил, а потом добавил его в .gitignore. Но git продолжит отслеживать изменения в нем, поэтому нужно его удалить из отслеживания:
# сначала нужно добавить файл в .gitignore (но он пока не изчеснет из отслеживания, это можно увидеть "git status"-ом) (и даже если "git restore"-ом сбросить изменения - это не повлияет)
git rm --cached <file>