Работа с git reset

В этой статье речь пойдёт о разнице между разными режимами работы утилиты git reset.

Итак начальные данные

1._nachalnoe_sostoyanie.jpg0._kommit.jpg

  • file1.md - файл, который закоммичен
  • file2.md - файл, который находится в stage(index), то есть уже подготовлен для коммита
  • file3.md - неотслеживаемый файл

Рассмотрим результат работы команды git reset с разными опциями.

git reset --soft HEAD~1

2._soft.jpg

  • откат на предыдущий коммит
  • file1.md - перешёл в stage
  • file2.md - остался в stage
  • file3.md - остался без изменений
git reset --mixed HEAD~1

или просто

git reset HEAD~1

3._mixed.jpg

  • откат на предыдущий коммит
  • file1.md - перешёл в состояние неотслеживаемого файла
  • file2.md - перешёл в состояние неотслеживаемого файла
  • file3.md - остался без изменений
git reset --keep HEAD~1

4._keep.jpg

  • откат на предыдущий коммит
  • file1.md - удалён, файл не сохранился
  • file2.md - перешёл в состояние неотслеживаемого файла
  • file3.md - остался без изменений
git reset --hard HEAD~1

5._hard.jpg

  • откат на предыдущий коммит
  • file1.md - удалён, файл не сохранился
  • file2.md - удалён, файл не сохранился
  • file3.md - остался без изменений

Тэги:

Тэг в списке: