무엇이 남고 무엇이 사라지는가
--worktree 생성 조건, .worktreeinclude, 종료 시 동작 분기
worktree는 만드는 명령보다 정리 규칙이 어렵습니다. claude --worktree <이름>은 저장소 루트의 .claude/worktrees/<이름>/에 격리 체크아웃을 만들고 worktree-<이름> 브랜치를 붙이지만, 그 디렉토리에서 trust 다이얼로그를 수락하지 않았다면 -p와 함께 써도 에러로 끝납니다. 또 새 체크아웃이라 gitignore된 .env는 따라오지 않아 앱이 부팅되지 않습니다. 종료 시점에는 변경 유무와 실행 모드에 따라 자동 제거·질문·방치로 갈라집니다. 이 분기를 모르면 반나절치 작업이 조용히 사라집니다.
| 상황 | 동작 | 운영 지침 |
|---|---|---|
| 변경·untracked·새 커밋 모두 없음 | worktree와 브랜치 자동 제거 | 이름 지정 세션은 보존 여부를 물음 |
| 커밋하지 않은 변경이 있음 | 유지할지 제거할지 물음 | 제거하면 미커밋 변경까지 소실 |
| --worktree + -p 비대화형 실행 | 종료 프롬프트 없이 그대로 남음 | git worktree remove로 직접 정리 |
| Agent View에서 Ctrl+X 두 번 | 세션과 그 worktree 함께 삭제 | 보존할 변경은 먼저 commit/push |
| 셸에서 claude rm <id> | 변경 있는 worktree는 보존 | 출력된 경로에서 변경 회수 |
- trust 선행 수락새 머신·러너에서는 해당 디렉토리로 claude를 한 번 실행해 trust를 수락합니다.
- 로컬 설정 등록프로젝트 루트 .worktreeinclude에 .env 같은 gitignore된 파일을 적습니다.
- 분기 기준 고정worktree.baseRef를 "fresh"와 "head" 중 하나로 팀 표준에 못박습니다.
- 정리 후처리 삽입비대화형 배치에는 git worktree remove와 prune을 실행 후 단계로 넣습니다.