Worktree Operations

컨텍스트가 찼을 때는 분리하고 넘긴다.

이 문서는 실제 작업을 어디서 어떻게 분리하고, 무엇을 hand-off 문서에 남기며, 언제 병합할지 정리한 운영 규칙이다. 추상 원칙이 아니라 지금 프로젝트에서 바로 쓰는 기준이다.

분리 기준

  • public-site: 공개 UI와 스타일만 다룬다.
  • admin-recovery: 관리자 UI, 발행, 로그, 복구 액션을 다룬다.
  • db-migration: Supabase schema, RLS, migration만 다룬다.
  • docs: 계획서와 작업 원칙만 다룬다.

명명

codex/public-site codex/admin-recovery codex/db-migration codex/docs-handbook

worktree와 브랜치 이름을 역할이 보이게 맞추면 돌아왔을 때 바로 판단할 수 있다.

시작 순서

1. 현재 상태를 고정한다.진행 중인 작업을 커밋하거나 임시 보관한다.
2. 새 worktree를 만든다.기능별로 다른 디렉터리에 체크아웃한다.
3. handoff 파일을 둔다.현재 목적, 파일 범위, 다음 액션을 적는다.
4. 세션을 분리한다.편집기와 터미널을 worktree 단위로만 운용한다.

Hand-off 템플릿

goal: settings/media diff 화면 완성 scope: src/pages/admin/settings/*, src/pages/admin/media/* done: 목록/상세/복구 구현 next: diff compact UI 정리 risks: audit snapshot schema 불일치 확인 owner: Codex

hand-off가 끝나면 같은 카드에 다음 두 줄을 남긴다: donenext. 종료 시점엔 현재 worktree를 닫고, 다음 worktree에서만 이어간다.

실행 명령

# 현재 리포지토리 기준으로 작업트리 분리 git worktree add ../s-reborn-public codex/public-site git worktree add ../s-reborn-admin codex/admin-recovery git worktree add ../s-reborn-db codex/db-migration # 상태 확인 git worktree list # 정리 git worktree remove ../s-reborn-public git worktree prune

Windows PowerShell에서도 그대로 실행 가능하다. 경로만 현재 작업 디렉터리 구조에 맞게 바꾸면 된다.

병합 기준

  • 한 worktree는 한 목적만 끝내고 병합한다.
  • 병합 전에 build와 최소한의 화면 확인을 끝낸다.
  • 충돌이 생기면 오래된 worktree를 먼저 버리지 말고 기준 worktree를 정한 뒤 다시 동기화한다.

rebase conflict 대응

1. 중단충돌 파일을 억지로 넘기지 말고 rebase를 멈춘다.
2. 기준 선택원격의 최신 상태와 현재 worktree 중 무엇을 기준으로 둘지 먼저 정한다.
3. 병합충돌 마커를 제거하고, 의도한 변경만 남긴다.
4. 검증빌드와 핵심 화면을 다시 확인한 뒤 rebase를 계속한다.

충돌이 길어지면 worktree를 새로 만들기보다, 손상되지 않은 기준 브랜치를 먼저 정리하는 편이 더 안전하다.

최종 결론: 지금 프로젝트의 다음 축은 Git worktree 기반 분리다. tmux는 보조, Google AI Studio는 대용량 검토, cmux는 현재 우선순위가 아니다.