기술

Claude Code가 코드를 망쳤다면 git reset 전에 Esc 두 번

Claude Code는 메시지를 보낼 때마다 체크포인트를 자동으로 남깁니다. /rewind로 코드만, 대화만, 둘 다 골라서 되돌립니다. 다만 Bash 명령으로만 바꾼 파일은 돌아오지 않습니다.

Claude Code에 일을 맡겼더니 멀쩡하던 코드가 엉망이 됐습니다. 이때 바로 git reset --hard부터 치면, 커밋하지 않은 내 작업까지 같이 날아갑니다. Claude Code에는 세션 안에서 되돌리는 기능이 따로 있습니다.

근거: Claude Code 문서 Checkpointing (2026년 11월 2일 확인)

여는 법

  • 입력창이 비어 있을 때 Esc를 두 번 누르거나
  • /rewind를 입력합니다.

입력창에 글자가 있으면 Esc 두 번은 입력한 글을 지웁니다(지운 글은 위 화살표로 다시 불러옵니다).

메뉴를 열면 이 세션에서 보낸 메시지가 쭉 뜹니다. 돌아갈 시점을 고르고, 무엇을 되돌릴지 고릅니다.

선택하는 일
Restore code and conversation코드와 대화를 둘 다 그 시점으로
Restore conversation대화만 되돌리고 지금 코드는 유지
Restore code코드만 되돌리고 대화는 유지
Summarize from here / up to here대화를 요약해 컨텍스트를 비움(파일은 그대로)

체크포인트는 자동으로 생긴다

  • 턴을 시작하는 메시지를 보낼 때마다 체크포인트가 하나 생깁니다.
  • 세션마다 최근 100개 체크포인트의 파일 스냅숏을 보관합니다.
  • 세션을 닫았다가 다시 이어도(resume) /rewind가 됩니다.
  • 스냅숏은 기본적으로 마지막 저장 후 약 30일 뒤 지워집니다. 더 오래 두려면 cleanupPeriodDays 설정을 바꿉니다.

함정: 되돌려지지 않는 것

경우되돌려지나
Claude의 파일 편집 도구로 바꾼 파일됨
Bash 명령으로만 바꾼 파일(rm, mv, cp 등)안 됨
백그라운드 서브에이전트가 처음 건드린 파일안 됨
내가 에디터에서 직접 고친 파일, 다른 세션의 편집대체로 안 됨
심볼릭 링크·하드 링크 파일(dotfile 관리자, pnpm 등)건너뜀

가장 흔한 사고가 첫 번째 함정입니다. Claude가 rm으로 지운 파일이 그 세션에서 편집 도구로 한 번도 건드리지 않은 파일이라면, /rewind로 돌아오지 않습니다. 단, Claude가 이미 편집 도구로 고친 적이 있는 파일이라면 그 뒤 Bash가 바꾼 내용도 되돌립니다.

체크포인트와 git은 역할이 다르다

공식 문서에도 체크포인트가 버전 관리를 대신하지 않는다고 적혀 있습니다.

  • 체크포인트: 세션 안에서 빠르게 되돌리기. 실험하다 틀렸을 때.
  • git 커밋: 영구 기록. 협업과 긴 이력.

그래서 큰 작업을 맡기기 전에는 커밋을 하나 해 두세요. 체크포인트가 놓치는 Bash 삭제도 커밋이 있으면 git checkout으로 살립니다.

오늘 할 일

Claude Code를 켜고 입력창이 빈 상태에서 Esc를 두 번 눌러 보세요. 메뉴가 어떻게 생겼는지 한 번 봐 두면, 급할 때 git reset보다 먼저 떠오릅니다.

관련 글: Claude Code가 rm -rf 치기 전에 막는 법

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.

esc

↑↓ 고르기↵ 열기? 단축키

해변에서 주운 것

읽으러 가기 →
guest@beachcombers — zsh

단축키

⌘K 또는 /
글·작업·개발일지 찾기
R
해변 산책 — 아무 글 하나 줍기
`
터미널 열기
←→
쪽 넘기기 (휠·스와이프도 됩니다)
?
이 안내
esc
닫기