mirror of
https://github.com/luongnv89/claude-howto.git
synced 2026-07-11 23:26:32 +02:00
8684be223d
Module 01: Slash Commands (565 lines) Module 08: Checkpoints and Rewind (320 lines) Update TRANSLATION_QUEUE.md with P1 completion. Progress: 7/67 files (P1: 5/5 DONE, P2: 2/10) Ref: luongnv89/claude-howto#63
336 lines
18 KiB
Markdown
336 lines
18 KiB
Markdown
<!-- 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
|