Команда git reset в Git работает, перемещая указатель HEAD и указатель ветки на заданный коммит. 3 В зависимости от используемых параметров она возвращает предыдущее состояние репозитория, индекса или рабочей директории. 1
При использовании параметра --soft указатель HEAD перемещается на выбранное количество коммитов назад, а изменения остаются в разделе проиндексированных файлов и рабочем каталоге. 1 Например, если был создан новый файл и включён в список отслеживаемых изменений, а после этого произведён коммит с ошибкой, то с помощью параметра --soft можно сбросить последний коммит и поместить файл обратно в индекс. 1
При использовании параметра --hard команда удаляет все изменения так, чтобы состояние индекса и рабочей копии полностью соответствовали коммиту, к которому сделан сброс. 2 Эта команда уничтожит все неотправленные изменения, поэтому перед её использованием нужно убедиться, что действительно хочется удалить локальные наработки. 3
При использовании команды git reset необходимо быть осторожным, так как она изменяет историю репозитория, результатом чего может стать потеря данных. 1