Junior — Middle
--soft, --mixed ve --hard parametreleriyle git reset komutları arasındaki farkları açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Команда git reset используется для перемещения указателя ветки и изменения состояния индекса и рабочего каталога. Различия между параметрами:
-
--soft— перемещает указатель ветки (HEAD) на указанный коммит, при этом индекс и рабочая директория остаются без изменений. Изменения остаются в индексе, как будто вы их подготовили к коммиту. -
--mixed(значение по умолчанию) — перемещает указатель ветки и сбрасывает индекс к состоянию указанного коммита, но рабочая директория не меняется. Изменения становятся неиндексированными. -
--hard— перемещает указатель ветки, сбрасывает индекс и рабочую директорию к состоянию указанного коммита. Все несохранённые изменения будут потеряны.
Пример:
# Переместить HEAD на предыдущий коммит, оставить изменения в индексе
git reset --soft HEAD~1
# Переместить HEAD на предыдущий коммит, сбросить индекс, оставить изменения в рабочей директории
git reset --mixed HEAD~1
# Переместить HEAD на предыдущий коммит, сбросить индекс и рабочую директорию
git reset --hard HEAD~1