Удаление незакоммиченных изменений
Например, мы находимся в репозитории, в ветке cursor
. Изменений никаких нет:
Внесём в него изменения:
Проверим статус репозитория:
Чтобы вернуть файл к исходному состоянию, нужно ввести
git restore <file>
:
Произошёл откат изменения:
Если файл был добавлен в индекс, то его можно вернуть из индекса аналогичной командой
git restore --stage <file>
:Если потребуется откатить это изменение, то нужно ввести
git restore <file>
:Теперь внесём несколько изменений. Добавил атлас и в несколько файлов добавил новые строки кода:


Можем добавить какой-нибудь файл в индекс:
Чтобы удалить все незакоммиченные изменения, можно выполнить команду
git reset --hard
:
Но команда
git reset --hard
не удаляет ещё не отслеживаемые файлы и которые не добавлялись в индекс:В этом случае, изменения можно удалить командой
git clean -f
:

Если вы вышеперечисленными способами удалите изменения, то восстановить их не получится.
Удаление файла из отслеживания системой контроля версией git:
Например, вы создали какой-то файл, закоммитили его, а потом добавили его в .gitignore
. Git будет отслеживать его. И его нужно специальным образом удалить.
Создадим файл:
Закоммитим этот файл:

Внесём еще одно изменение в этот файл:
Для того, чтобы перестать отслеживать его системой контроля версией git. Добавим для начала этот файл в
.gitignore
:Чтобы Git перестал отслеживать изменения в этом файле, его нужно удалить командой
git rm --cached <file>
:После ввода команды
git status
мы видим, что этот файл удалён из отслеживания системой контроля версий. Но при этом он не удалён из проекта.Изменим файл:
Этот файл не отслеживается:

Основные команды:
-
git restore <file>
Отменяет изменения в указанном файле<file>
в рабочей директории, восстанавливая его до состояния последнего коммита. -
git restore --staged <file>
Удаляет указанный файл из индекса (staging area), не затрагивая изменения в рабочей директории. -
git reset --hard
Сбрасывает рабочую директорию и индекс до состояния последнего коммита, удаляя все незакоммиченные изменения. Осторожно: данные теряются! -
git clean -f
Удаляет все неотслеживаемые файлы и директории из рабочей директории. Флаг-f
подтверждает удаление. -
git rm --cached <file>
Удаляет указанный файл<file>
из индекса (перестаёт отслеживаться), но оставляет его в рабочей директории.
Эти команды полезны для управления изменениями и очистки рабочей директории. Используй с осторожностью, особенно git reset --hard
и git clean -f
, так как они могут безвозвратно удалить данные.