<!-- i18n-source: 08-checkpoints/README.md -->
<!-- i18n-source-sha: 63a1416 -->
<!-- i18n-date: 2026-04-09 -->

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="../../resources/logos/claude-howto-logo-dark.svg">
  <img alt="Claude How To" src="../../resources/logos/claude-howto-logo.svg">
</picture>

# Контрольні точки та відкат

Контрольні точки дозволяють зберігати стан розмови та повертатися до попередніх моментів у сесії Claude Code. Це незамінно для дослідження різних підходів, відновлення після помилок або порівняння альтернативних рішень.

## Огляд

Контрольні точки — це знімки стану вашої розмови, що включають:

- Усі повідомлення розмови
- Модифікації файлів
- Історію використання інструментів
- Контекст сесії

Контрольні точки незамінні при дослідженні різних підходів, відновленні після помилок або порівнянні альтернативних рішень.

## Ключові поняття

| Поняття | Опис |
|---------|------|
| **Контрольна точка (Checkpoint)** | Знімок стану розмови, включаючи повідомлення, файли та контекст |
| **Відкат (Rewind)** | Повернення до попередньої контрольної точки з відкиданням подальших змін |
| **Точка розгалуження (Branch Point)** | Контрольна точка, з якої досліджуються кілька підходів |

## Доступ до контрольних точок

Ви можете отримати доступ та управляти контрольними точками двома способами:

### Клавіатурне скорочення

Натисніть `Esc` двічі (`Esc` + `Esc`), щоб відкрити інтерфейс контрольних точок та переглянути збережені точки.

### Слеш-команда

Використовуйте команду `/rewind` (аліас: `/checkpoint`) для швидкого доступу:

```bash
# Відкрити інтерфейс відкату
/rewind

# Або використайте аліас
/checkpoint
```

## Варіанти відкату

При відкаті вам пропонується меню з п'яти варіантів:

1. **Відновити код і розмову** — Повернути і файли, і повідомлення до цієї контрольної точки
2. **Відновити розмову** — Відкотити лише повідомлення, залишити поточний код як є
3. **Відновити код** — Повернути зміни файлів, зберегти повну історію розмови
4. **Підсумувати звідси** — Стиснути розмову від цієї точки вперед в AI-згенерований підсумок, звільняючи контекстне вікно. Повідомлення до обраної точки залишаються недоторканими. Жодні файли на диску не змінюються. Оригінальні повідомлення зберігаються в транскрипті сесії. Можна додатково вказати інструкції для фокусування підсумку на конкретних темах.
5. **Скасувати** — Скасувати та повернутися до поточного стану

> **Примітка**: Після відновлення розмови або підсумовування оригінальний промпт з обраного повідомлення відновлюється в полі вводу, щоб ви могли повторно надіслати або відредагувати його.

## Автоматичні контрольні точки

Claude Code автоматично створює контрольні точки:

- **Кожен промпт користувача** — Нова контрольна точка створюється з кожним введенням
- **Постійні** — Контрольні точки зберігаються між сесіями
- **Автоочищення** — Контрольні точки автоматично очищуються через 30 днів

Це означає, що ви завжди можете повернутися до будь-якого попереднього моменту розмови — від кількох хвилин тому до днів.

## Сценарії використання

| Сценарій | Процес |
|----------|--------|
| **Дослідження підходів** | Зберегти → Спробувати A → Зберегти → Відкат → Спробувати B → Порівняти |
| **Безпечний рефакторинг** | Зберегти → Рефакторити → Тест → Якщо не вдалось: Відкат |
| **A/B тестування** | Зберегти → Дизайн A → Зберегти → Відкат → Дизайн B → Порівняти |
| **Відновлення після помилки** | Помітити проблему → Відкат до останнього робочого стану |

## Використання контрольних точок

### Перегляд та відкат

Натисніть `Esc` двічі або використайте `/rewind`, щоб відкрити браузер контрольних точок. Ви побачите список усіх доступних точок з мітками часу. Оберіть будь-яку для відкату.

### Деталі контрольної точки

Кожна контрольна точка показує:

- Мітку часу створення
- Модифіковані файли
- Кількість повідомлень у розмові
- Використані інструменти

## Практичні приклади

### Приклад 1: Дослідження різних підходів

```
User: Let's add a caching layer to the API

Claude: I'll add Redis caching to your API endpoints...
[Makes changes at checkpoint A]

User: Actually, let's try in-memory caching instead

Claude: I'll rewind to explore a different approach...
[User presses Esc+Esc and rewinds to checkpoint A]
[Implements in-memory caching at checkpoint B]

User: Now I can compare both approaches
```

### Приклад 2: Відновлення після помилки

```
User: Refactor the authentication module to use JWT

Claude: I'll refactor the authentication module...
[Makes extensive changes]

User: Wait, that broke the OAuth integration. Let's go back.

Claude: I'll help you rewind to before the refactoring...
[User presses Esc+Esc and selects the checkpoint before the refactor]

User: Let's try a more conservative approach this time
```

### Приклад 3: Безпечне експериментування

```
User: Let's try rewriting this in a functional style
[Creates checkpoint before experiment]

Claude: [Makes experimental changes]

User: The tests are failing. Let's rewind.
[User presses Esc+Esc and rewinds to the checkpoint]

Claude: I've rewound the changes. Let's try a different approach.
```

### Приклад 4: Розгалуження підходів

```
User: I want to compare two database designs
[Takes note of checkpoint - call it "Start"]

Claude: I'll create the first design...
[Implements Schema A]

User: Now let me go back and try the second approach
[User presses Esc+Esc and rewinds to "Start"]

Claude: Now I'll implement Schema B...
[Implements Schema B]

User: Great! Now I have both schemas to choose from
```

## Збереження контрольних точок

Claude Code автоматично управляє контрольними точками:

- Контрольні точки створюються автоматично з кожним промптом
- Старі контрольні точки зберігаються до 30 днів
- Автоматичне очищення запобігає необмеженому зростанню сховища

## Патерни процесів

### Стратегія розгалуження для дослідження

При дослідженні кількох підходів:

```
1. Початкова реалізація → Контрольна точка A
2. Спроба Підходу 1 → Контрольна точка B
3. Відкат до Контрольної точки A
4. Спроба Підходу 2 → Контрольна точка C
5. Порівняння результатів B та C
6. Вибір найкращого підходу та продовження
```

### Патерн безпечного рефакторингу

При значних змінах:

```
1. Поточний стан → Контрольна точка (авто)
2. Початок рефакторингу
3. Запуск тестів
4. Якщо тести пройшли → Продовжити роботу
5. Якщо тести не пройшли → Відкат та спроба іншого підходу
```

## Найкращі практики

Оскільки контрольні точки створюються автоматично, ви можете зосередитися на роботі, не турбуючись про ручне збереження стану. Але пам'ятайте:

### Ефективне використання контрольних точок

✅ **Робіть:**

- Переглядайте доступні контрольні точки перед відкатом
- Використовуйте відкат для дослідження різних напрямків
- Зберігайте контрольні точки для порівняння підходів
- Розумійте, що робить кожен варіант відкату

❌ **Не робіть:**

- Не покладайтесь лише на контрольні точки для збереження коду
- Не очікуйте, що контрольні точки відстежують зовнішні зміни файлової системи
- Не використовуйте контрольні точки замість git-комітів

## Конфігурація

Контрольні точки — вбудована поведінка Claude Code за замовчуванням, не потребує конфігурації. Кожен промпт автоматично створює контрольну точку.

Єдине налаштування — `cleanupPeriodDays`, що контролює тривалість зберігання:

```json
{
  "cleanupPeriodDays": 30
}
```

- `cleanupPeriodDays`: Кількість днів зберігання історії сесій та контрольних точок (за замовчуванням: `30`)

## Обмеження

Контрольні точки мають такі обмеження:

- **Bash-команди НЕ відстежуються** — Операції `rm`, `mv`, `cp` у файловій системі не фіксуються
- **Зовнішні зміни НЕ відстежуються** — Зміни, зроблені поза Claude Code (у редакторі, терміналі тощо), не фіксуються
- **Не заміна системі контролю версій** — Використовуйте git для постійних, аудитованих змін

## Усунення неполадок

### Відсутні контрольні точки

**Проблема**: Очікувана контрольна точка не знайдена

**Рішення**:

- Перевірте, чи контрольні точки не були очищені
- Перевірте дисковий простір
- Переконайтесь, що `cleanupPeriodDays` встановлено достатньо високо (за замовчуванням: 30 днів)

### Невдалий відкат

**Проблема**: Не вдається відкотити до контрольної точки

**Рішення**:

- Переконайтесь, що немає конфліктуючих незакомічених змін
- Перевірте, чи контрольна точка не пошкоджена
- Спробуйте відкат до іншої контрольної точки

## Інтеграція з Git

Контрольні точки доповнюють (але не замінюють) git:

| Характеристика | Git | Контрольні точки |
|----------------|-----|-----------------|
| Область | Файлова система | Розмова + файли |
| Постійність | Постійна | На рівні сесії |
| Деталізація | Коміти | Будь-яка точка |
| Швидкість | Повільніше | Миттєво |
| Спільний доступ | Так | Обмежено |

Використовуйте обидва разом:

1. Контрольні точки для швидкого експериментування
2. Git-коміти для фіналізованих змін
3. Створення контрольної точки перед git-операціями
4. Коміт успішних станів до git

## Швидкий старт

### Базовий процес

1. **Працюйте як зазвичай** — Claude Code створює контрольні точки автоматично
2. **Хочете повернутись?** — Натисніть `Esc` двічі або `/rewind`
3. **Оберіть контрольну точку** — Виберіть зі списку
4. **Оберіть що відновити** — Код і розмову, лише розмову, лише код, підсумувати або скасувати
5. **Продовжуйте роботу** — Ви повернулись до тієї точки

### Клавіатурні скорочення

- **`Esc` + `Esc`** — Відкрити браузер контрольних точок
- **`/rewind`** — Альтернативний спосіб доступу
- **`/checkpoint`** — Аліас для `/rewind`

## Коли відкочуватися: Моніторинг контексту

Контрольні точки дозволяють повернутись — але як зрозуміти, *коли* це потрібно? З ростом розмови контекстне вікно Claude заповнюється, і якість моделі непомітно знижується. Ви можете відправляти код, згенерований напівсліпою моделлю, навіть не усвідомлюючи цього.

**[cc-context-stats](https://github.com/luongnv89/cc-context-stats)** вирішує це, додаючи **зони контексту** в реальному часі до рядка стану Claude Code. Інструмент відстежує, де ви знаходитесь у контекстному вікні — від **Plan** (зелений, безпечно планувати та кодити) через **Code** (жовтий, уникайте нових планів) до **Dump** (оранжевий, завершуйте та відкочуйте). Коли бачите зміну зони — час створити контрольну точку та почати заново.

## Пов'язані концепції

- **[Розширені функції](../09-advanced-features/)** — Режим планування та інші просунуті можливості
- **[Управління пам'яттю](../02-memory/)** — Управління історією розмови та контекстом
- **[Слеш-команди](../01-slash-commands/)** — Ярлики користувача
- **[Хуки](../06-hooks/)** — Автоматизація на основі подій
- **[Плагіни](../07-plugins/)** — Пакетні розширення

## Додаткові ресурси

- [Офіційна документація контрольних точок](https://code.claude.com/docs/en/checkpointing)
- [Посібник з розширених функцій](../09-advanced-features/) — Розширене мислення та інші можливості

## Підсумок

Контрольні точки — автоматична функція Claude Code, що дозволяє безпечно досліджувати різні підходи без страху втратити роботу. Кожен промпт автоматично створює нову контрольну точку, тож ви можете відкотитися до будь-якого попереднього моменту сесії.

Ключові переваги:

- Безстрашне експериментування з кількома підходами
- Швидке відновлення після помилок
- Порівняння різних рішень пліч-о-пліч
- Безпечна інтеграція з системами контролю версій

Пам'ятайте: контрольні точки не замінюють git. Використовуйте контрольні точки для швидкого експериментування, а git — для постійних змін коду.

---

**Останнє оновлення**: 9 квітня 2026
**Версія Claude Code**: 2.1.97
**Сумісні моделі**: Claude Sonnet 4.6, Claude Opus 4.6, Claude Haiku 4.5
