О git

Дополнительную гибкость в работе с коммитами придаёт использование команды git reset. Выполнение этой команды перемещает то, на что указывает HEAD. HEAD – это указатель на текущую ветку, которая, в свою очередь, является указателем на последний коммит, сделанный в этой ветке. И, в отличие от git checkout, в случае git reset изменяется на сам HEAD (то есть он не указывает на другую ветку), а ветка, на которую он указывает. У git reset 3 режима (рассматриваю вариант git reset HEAD):

  • —soft : отменяет последний коммит, но оставляет содержимое последнего коммита в состоянии modified staged
  • —mixed : отменяет последний коммит, а также помещает содержимое последнего коммита в состояние modified not staged
  • —hard : отменяет последний коммит и всё его содержимое

modified – это состояние файла в git, которое возникает, когда файл, находящийся в состоянии committed, был изменён. Вернуть файл в состояние committed (то есть откатить изменения) можно, выполнив команду git checkout <путь к файлу>. Команда git add <путь к файлу> переводит файл в состояние staged для следующего коммита (modified staged). Но чтобы вернуть файл в состояние modified not staged, нужно выполнить не команду git rm (—cached или -f), как при переводе из состояния staged в состояние untracked, а команду git reset HEAD. Из состояния modified staged в состояние committed файл переводится также командой git commit –m “описание коммита”, по факту новое содержимое файла вошло в новый коммит.

Назад Вперед

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *