Удаление незакоммиченных изменений

Бывает же, сделал изменения, еще не закоммитил и передумал, хочешь удалить эти изменения (вернуть в состояние прошлого коммита). Под удалением изменений подразумевается и возврат удаленных файлов.

Удалить изменения в файле можно так:

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>

git