Claude Code로 코딩하다 파일 꼬였을 때 직전 상태로 되돌리는 법 (git restore와 세션 리셋)

터미널에서 Claude Code 켜두고 바이브코딩하다 보면 누구나 한 번쯤 겪는 상황이 있습니다.
"이 함수 버그 좀 잡아줘"라고 가볍게 시켰는데, AI가 신나서 함수 하나 고치겠다고 주변 파일 서너 개를 연쇄 수정하고, 패키지 버전까지 건드려서 멀쩡하던 빌드가 와장창 깨지는 순간입니다.
당황해서 터미널에 "방금 수정한 거 다 취소하고 원래대로 돌려놔"라고 치면, Claude가 "죄송합니다, 원래대로 복구하겠습니다"라며 사과를 늘어놓더니 코드를 더 이상하게 덮어써서 돌이킬 수 없는 강을 건너곤 합니다.
AI에게 말로 복구를 부탁하지 마세요. 파일이 꼬였을 때 가장 빠르고 깔끔하게 직전 상태로 원복하는 현실적인 대처법 3가지를 정리했습니다.

 



1. 꼬인 파일만 핀포인트로 되돌리기 (git restore)

가장 흔한 실수가 "방금 전으로 되돌려줘"라고 AI에게 텍스트로 시키는 것입니다. LLM은 직전 파일의 온전한 바이트를 기억하는 게 아니라 확률로 재생성하기 때문에, 원래 있던 주석이나 타입 정의를 날려먹기 일쑤입니다.
깃(Git)으로 버전 관리가 되고 있다면 터미널에서 직접 명령어를 치는 게 백 배 안전합니다.
특정 파일 하나만 작업 전 상태로 되돌릴 때

git restore src/components/Header.tsx


AI가 건드린 모든 수정사항을 직전 커밋 상태로 통째로 날릴 때

git restore .


만약 AI가 새로 만들어낸 불필요한 파일(Untracked files)까지 싹 지우고 싶다면:

git clean -fd


이렇게 치면 AI가 임의로 만든 임시 파일이나 스크립트가 흔적도 없이 사라집니다.

2. 작업 시작 전 안전망 만들어두기 (작은 커밋 or stash)

Claude Code를 돌릴 때 가장 좋은 습관은 "AI에게 한 가지 작업을 지시하기 직전에 무조건 Git 상태를 깨끗하게 비워두는 것"입니다.
정식 커밋을 남기기 애매하다면 git stash를 쓰거나 임시 커밋을 찍어두세요.

git add .
git commit -m "wip: auth logic before claude"


이렇게 한 줄 남겨두면 Claude가 아무리 코드를 엉망으로 꼬아놔도 아래 한 줄이면 1초 만에 작업 직전으로 복구됩니다.

git reset --hard HEAD


3. 꼬인 컨텍스트 비우기 (/compact 또는 새 세션)

파일을 Git으로 원복했더라도 터미널 세션 안에는 Claude가 직전에 시도했던 실패한 코드와 오류 로그가 컨텍스트로 남아 있습니다.
이 상태에서 그대로 다음 지시를 내리면, Claude는 여전히 이전 실패 기록에 얽매여서 똑같은 삽질을 반복하게 됩니다.
방법 A. 세션 압축: 터미널 입력창에 /compact를 입력해 지금까지의 긴 히스토리를 요약 압축합니다.
방법 B. 세션 새로 열기(가장 추천): 컨텍스트가 이미 심하게 오염됐다면 Ctrl + C로 세션을 종료하고 새 터미널에서 Claude Code를 다시 실행하는 편이 토큰도 아끼고 훨씬 깔끔합니다.

4. 재발 방지: CLAUDE.md에 단단한 규칙 적어두기

프로젝트 루트에 CLAUDE.md 파일이 있다면, AI가 불필요하게 영역을 넓혀 파일을 난도질하지 못하도록 아래 규칙을 한 줄 추가해 두는 것을 추천합니다.

- Do not edit files unless explicitly requested in the prompt.
- If fixing a bug, only touch the minimal lines necessary.
- Run tests or type checks before concluding the task.


"프롬프트에서 직접 명시하지 않은 파일은 절대 수정하지 마라"는 규칙 하나만 박아둬도, 엉뚱한 설정 파일이나 CSS가 함께 꼬이는 현상을 90% 이상 예방할 수 있습니다.