Как откатить коммиты в Git: подробное руководство

Для отката коммита в Git можно использовать команду git reset. В зависимости от того, какой тип отката нужен, используются разные опции этой команды. Рассмотрим наиболее распространенные варианты.

1. Откат последнего коммита

Если нужно откатить последний коммит, то можно использовать команду:


git reset HEAD^

HEAD обозначает текущую позицию в ветке, а символ ^ указывает на предыдущий коммит. Таким образом, команда reset HEAD^ отменяет последний коммит и возвращает файлы в состояние перед ним.

2. Откат на определенный коммит

Если нужно отменить коммит, который был сделан не последним, то нужно провести откат на конкретный коммит. Для этого нужно знать его хэш-код, который можно получить с помощью команды git log. Например, если нужно откатить на предпоследний коммит, то нужно выполнить следующую команду:


git reset <хэш-код предпоследнего коммита>

3. Откат коммита с сохранением изменений

Иногда бывает полезно сохранить внесенные изменения, но отменить только конкретный коммит. Для этого можно использовать опцию --soft. Например, если нужно отменить последний коммит, но сохранить его изменения, то нужно выполнить следующую команду:


git reset --soft HEAD^

4. Откат коммита с удалением изменений

Если нужно отменить коммит и удалить все изменения, которые он внес, то можно использовать опцию --hard. Например, если нужно вернуться на три коммита назад и удалить все изменения, то нужно выполнить следующую команду:


git reset --hard HEAD~3

Эта команда откатывает на три коммита назад и удаляет все изменения, которые были сделаны после этого коммита.

Пример кода:


$ git log --oneline
a3c3f2c Fourth commit
cc2691d Third commit
5bfe648 Second commit
10586b2 First commit
$ git reset HEAD^
Unstaged changes after reset:
M	file.txt
$ git log --oneline
cc2691d Third commit
5bfe648 Second commit
10586b2 First commit

В данном примере мы сделали четыре коммита, а потом откатили последний с помощью команды git reset. После этого мы видим, что в ветке остались только три коммита, а изменения, которые были в последнем коммите, вернулись в рабочую директорию. В данном случае мы использовали опцию HEAD^ для отката на один коммит назад.

Похожие вопросы на: "git откатить коммит "

Как удалить ветку в Git: пошаговая инструкция
JetBrains C: интуитивно понятная среда разработки на С
Медиа-запросы CSS: правильная адаптация сайта под разные устройства
CSS Before After: креативное оформление элементов на сайте
Что такое радиобаттон и как им пользоваться?
PDF в SVG – онлайн конвертер для быстрого и удобного перевода
jQuery CDN Google - ускоряем загрузку сайта
Element UI: гибкая и мощная библиотека компонентов для Vue.js
<exists> в SQL: описание, примеры и советы по использованию</exists>
Скачать jQuery - библиотеку JavaScript для упрощения работы с HTML