# 무엇이 남고 무엇이 사라지는가

> --worktree 생성 조건, .worktreeinclude, 종료 시 동작 분기

- Canonical: https://learning.reopt.ai/courses/claude-code-multi-session/lessons/ccms-m2-concept
- Language: ko-KR
- HTML: https://learning.reopt.ai/courses/claude-code-multi-session/lessons/ccms-m2-concept

---

[멀티세션 운영](/courses/claude-code-multi-session) 2. worktree 수명주기 — 만들기보다 정리 3 / 9

# 무엇이 남고 무엇이 사라지는가

--worktree 생성 조건, .worktreeinclude, 종료 시 동작 분기
개념 학습 45 XP 9분

worktree는 만드는 명령보다 정리 규칙이 어렵습니다. claude --worktree <이름> 은 저장소 루트의 .claude/worktrees/<이름>/ 에 격리 체크아웃을 만들고 worktree-<이름> 브랜치를 붙이지만, 그 디렉토리에서 trust 다이얼로그를 수락하지 않았다면 -p 와 함께 써도 에러로 끝납니다. 또 새 체크아웃이라 gitignore된 .env 는 따라오지 않아 앱이 부팅되지 않습니다. 종료 시점에는 변경 유무와 실행 모드에 따라 자동 제거·질문·방치 로 갈라집니다. 이 분기를 모르면 반나절치 작업이 조용히 사라집니다.
만들기 전에 지워질 때를 정한다 worktree를 시작할 때 무엇을 커밋·푸시하고 나올지가 이미 정해져 있어야 합니다. 특히 --worktree 와 -p 를 함께 쓰는 비대화형 실행은 종료 프롬프트가 없어 자동 정리되지 않으므로 git worktree remove 를 후처리로 명시합니다.

| 상황 | 동작 | 운영 지침 |
| 변경·untracked·새 커밋 모두 없음 | worktree와 브랜치 자동 제거 | 이름 지정 세션은 보존 여부를 물음 |
| 커밋하지 않은 변경이 있음 | 유지할지 제거할지 물음 | 제거하면 미커밋 변경까지 소실 |
| --worktree + -p 비대화형 실행 | 종료 프롬프트 없이 그대로 남음 | git worktree remove로 직접 정리 |
| Agent View에서 Ctrl+X 두 번 | 세션과 그 worktree 함께 삭제 | 보존할 변경은 먼저 commit/push |
| 셸에서 claude rm <id> | 변경 있는 worktree는 보존 | 출력된 경로에서 변경 회수 |

정리 경로마다 파괴성이 다르므로 습관이 아니라 규칙으로 고릅니다.

- 1 trust 선행 수락 새 머신·러너에서는 해당 디렉토리로 claude를 한 번 실행해 trust를 수락합니다.

- 2 로컬 설정 등록 프로젝트 루트 .worktreeinclude에 .env 같은 gitignore된 파일을 적습니다.

- 3 분기 기준 고정 worktree.baseRef를 "fresh"와 "head" 중 하나로 팀 표준에 못박습니다.

- 4 정리 후처리 삽입 비대화형 배치에는 git worktree remove와 prune을 실행 후 단계로 넣습니다.

실무에 남길 기준

- .worktreeinclude는 패턴에 맞으면서 gitignore된 파일만 복사한다
- WorktreeCreate 훅으로 생성 로직을 대체하면 .worktreeinclude 복사도 직접 해야 한다
- 의존성 설치와 가상환경 구성은 worktree마다 여전히 직접 해야 한다

[이전](/courses/claude-code-multi-session/lessons/ccms-m1-quiz) 이해했어요 · 계속

---

에이전트용 사이트 안내: https://learning.reopt.ai/llms.txt · 사이트맵: https://learning.reopt.ai/sitemap.xml · 문의: https://learning.reopt.ai/contact
