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

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

---

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

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

- Удалить коммит, сохранив изменения в индексе (стадии):
    
    ```bash
    git reset --soft HEAD~1
    
    ```
- Удалить коммит и убрать изменения из индекса, оставив их в рабочей папке:
    
    ```bash
    git reset --mixed HEAD~1
    
    ```
- Удалить коммит и изменения полностью (⚠️ безвозвратно):
    
    ```bash
    git reset --hard HEAD~1
    
    ```

---

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

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

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

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

```bash
git push
```

---

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

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

- Удалить последний коммит и изменения:
    
    ```bash
    git reset --hard HEAD~1
    ```
- Принудительно отправить изменения:
    
    ```bash
    git push --force
    ```

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

---

### Вывод

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