Checkpointing의 작동 방식
Claude와 함께 작업할 때 checkpointing은 각 편집 전에 코드의 상태를 자동으로 캡처합니다. 이 안전장치를 통해 언제든지 이전 코드 상태로 돌아갈 수 있다는 확신을 가지고 야심 찬 대규모 작업을 수행할 수 있습니다.자동 추적
Claude Code는 파일 편집 도구로 수행된 모든 변경 사항을 추적합니다:- 모든 사용자 프롬프트는 새로운 checkpoint를 생성합니다
- Checkpoint는 세션 전체에 걸쳐 유지되므로 재개된 대화에서 액세스할 수 있습니다
- 30일 후 세션과 함께 자동으로 정리됩니다(구성 가능)
되돌리기 및 요약
Esc 두 번(Esc + Esc)을 누르거나 /rewind 명령을 사용하여 rewind 메뉴를 엽니다. 스크롤 가능한 목록에는 세션의 각 프롬프트가 표시됩니다. 작업할 지점을 선택한 다음 작업을 선택합니다:
- 코드 및 대화 복원: 코드와 대화를 해당 지점으로 되돌립니다
- 대화 복원: 현재 코드를 유지하면서 해당 메시지로 되돌립니다
- 코드 복원: 대화를 유지하면서 파일 변경 사항을 되돌립니다
- 여기서부터 요약: 이 지점부터 이후의 대화를 요약으로 압축하여 context window 공간을 확보합니다
- 취소: 변경 사항을 적용하지 않고 메시지 목록으로 돌아갑니다
복원 vs. 요약
세 가지 복원 옵션은 상태를 되돌립니다: 코드 변경 사항, 대화 기록 또는 둘 다를 실행 취소합니다. “여기서부터 요약”은 다르게 작동합니다:- 선택한 메시지 이전의 메시지는 그대로 유지됩니다
- 선택한 메시지와 그 이후의 모든 메시지는 컴팩트한 AI 생성 요약으로 대체됩니다
- 디스크의 파일은 변경되지 않습니다
- 원본 메시지는 세션 기록에 보존되므로 Claude가 필요한 경우 세부 정보를 참조할 수 있습니다
/compact와 유사하지만 대상이 지정됩니다: 전체 대화를 요약하는 대신 초기 context를 완전한 세부 정보로 유지하고 공간을 차지하는 부분만 압축합니다. 요약이 초점을 맞출 내용을 안내하기 위해 선택적 지침을 입력할 수 있습니다.
Summarize는 동일한 세션에 유지되고 context를 압축합니다. 원본 세션을 그대로 유지하면서 다른 접근 방식을 시도하고 싶다면 fork 대신 사용하세요(
claude --continue --fork-session).일반적인 사용 사례
Checkpoint는 다음과 같은 경우에 특히 유용합니다:- 대안 탐색: 시작점을 잃지 않으면서 다양한 구현 접근 방식을 시도합니다
- 실수 복구: 버그를 도입하거나 기능을 손상시킨 변경 사항을 빠르게 실행 취소합니다
- 기능 반복: 작동하는 상태로 되돌릴 수 있다는 확신을 가지고 변형을 실험합니다
- Context 공간 확보: 초기 지침을 그대로 유지하면서 중간 지점부터 시작하여 자세한 디버깅 세션을 요약합니다
제한 사항
Bash 명령 변경 사항이 추적되지 않음
Checkpointing은 bash 명령으로 수정된 파일을 추적하지 않습니다. 예를 들어 Claude Code가 다음을 실행하는 경우:외부 변경 사항이 추적되지 않음
Checkpointing은 현재 세션 내에서 편집된 파일만 추적합니다. Claude Code 외부에서 수동으로 수행한 파일 변경 사항과 다른 동시 세션의 편집은 현재 세션과 동일한 파일을 수정하는 경우를 제외하고는 일반적으로 캡처되지 않습니다.버전 관리의 대체가 아님
Checkpoint는 빠른 세션 수준의 복구를 위해 설계되었습니다. 영구적인 버전 기록 및 협업을 위해:- 커밋, 분기 및 장기 기록을 위해 버전 관리(예: Git)를 계속 사용합니다
- Checkpoint는 적절한 버전 관리를 보완하지만 대체하지 않습니다
- Checkpoint를 “로컬 실행 취소”로, Git을 “영구 기록”으로 생각하세요
참고 항목
- Interactive mode - 키보드 단축키 및 세션 제어
- Built-in commands -
/rewind를 사용하여 checkpoint에 액세스 - CLI reference - 명령줄 옵션