Skip to main content

Как откатить последний коммит

Инструкция для отката последнего коммита, в зависимости от ситуации.


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

Если коммит ещё не был отправлен в удалённый репозиторий:

  • Удалить коммит, сохранив изменения в индексе (стадии):

    git reset --soft HEAD~1
    
  • Удалить коммит и убрать изменения из индекса, оставив их в рабочей папке:

    git reset --mixed HEAD~1
    
  • Удалить коммит и изменения полностью (⚠️ безвозвратно):

    git reset --hard HEAD~1
    

2. Откат опубликованного коммита (без изменения истории)

Если коммит уже отправлен в удалённый репозиторий:

  • Создать новый коммит, который отменяет изменения предыдущего:
    git revert HEAD

После этого отправить изменения в репозиторий:

git push

3. Жёсткий откат опубликованного коммита (с изменением истории)

Если нужно полностью удалить коммит (и изменения), и ты готов "переписать" историю репозитория:

  • Удалить последний коммит и изменения:

    git reset --hard HEAD~1
  • Принудительно отправить изменения:

    git push --force

⚠️ Предупреждение: Этот способ может привести к проблемам для других разработчиков, так как история репозитория будет изменена.


Вывод

Выбирай способ в зависимости от ситуации: для локальных коммитов подойдут reset, для опубликованных — безопасный revert или жёсткий reset --hard. Если есть сомнения, уточни детали своей задачи!