Running multiple sessions
2. worktree 수명주기 — 만들기보다 정리3 / 9

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

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

Concept 45 XP 9 min

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는 보존출력된 경로에서 변경 회수
정리 경로마다 파괴성이 다르므로 습관이 아니라 규칙으로 고릅니다.
  1. trust 선행 수락새 머신·러너에서는 해당 디렉토리로 claude를 한 번 실행해 trust를 수락합니다.
  2. 로컬 설정 등록프로젝트 루트 .worktreeinclude에 .env 같은 gitignore된 파일을 적습니다.
  3. 분기 기준 고정worktree.baseRef를 "fresh"와 "head" 중 하나로 팀 표준에 못박습니다.
  4. 정리 후처리 삽입비대화형 배치에는 git worktree remove와 prune을 실행 후 단계로 넣습니다.