Команда git reset работает для управления историей коммитов и контроля состояния репозитория. selectel.ru Она позволяет отменять коммиты, перемещать коммиты между ветками, стирать файлы из индекса и возвращаться к более ранним версиям кода. selectel.ru
Некоторые варианты работы команды:
- git reset --soft. selectel.ru Указатель HEAD перемещается на выбранное количество коммитов назад, а изменения остаются в разделе проиндексированных файлов и рабочем каталоге. selectel.ru Например, если был создан новый файл и включён в список отслеживаемых изменений, а после этого сделан коммит с ошибкой. selectel.ru В таком случае можно использовать параметр —soft, чтобы сбросить последний коммит и поместить файл обратно в индекс. selectel.ru
- git reset --mixed. selectel.ru Команда отменяет последнее сохранение изменений в коммите и сбрасывает индекс. selectel.ru Состояние рабочей директории остаётся нетронутым, что позволяет добавить другие изменения в индекс для последующего коммита. selectel.ru
- git reset --hard. www.atlassian.com Сбрасывает раздел проиндексированных файлов и рабочий каталог до состояния последнего коммита. www.atlassian.com Эта команда уничтожит все неотправленные изменения, поэтому перед её использованием нужно убедиться, что действительно хочется удалить локальные наработки. www.atlassian.com
Git reset следует использовать для локальных экспериментов, в которых что-то пошло не так, а не для публичных изменений. www.atlassian.com Если необходимо исправить публичный коммит, лучше воспользоваться специальной командой git revert. www.atlassian.com
При использовании команды git reset необходимо быть осторожным, так как она изменяет историю репозитория, результатом чего может стать потеря данных. selectel.ru Поэтому рекомендуется создавать резервные копии репозитория либо предварительно знать способы восстановления изменений, например, с использованием команды git reflog. selectel.ru