Git Worktree로 여러 브랜치를 동시에 작업하기

Key Point
병렬 작업 흐름이 일반화되면서 Git Worktree의 필요성이 높아지고 있으며, Emacs 사용자라면 Magit의 worktree 기능을 제대로 활용할 수 있습니다.
핵심 요약
- Git Worktree는 같은 저장소에 여러 개의 작업 디렉터리를 만드는 기능으로, 한 번에 여러 브랜치를 전환 없이 병렬로 작업할 수 있습니다.
- 기존 브랜치 방식은 단일 작업 디렉터리를 오가며 stash와 checkout을 반복해야 하지만, Worktree는 각각 독립적인 작업 디렉터리를 제공합니다.
- Git의 객체 데이터베이스와 레퍼런스는 공유되므로 fetch나 clone이 빠르고, 한 브랜치는 동시에 하나의 worktree에만 체크아웃 가능합니다.
- Magit에서는 Z 단축키로 worktree를 생성, 이동, 삭제할 수 있으며, 각 worktree별 독립적인 상태 버퍼를 제공합니다.
- 실제 운영 시 worktree 내 git 미추적 파일(의존성, 빌드 캐시 등)은 별도 설치가 필요하며, 완료 후 Z k로 삭제하거나 수동으로 정리합니다.
- 최근 AI 코딩 에이전트가 각 작업마다 worktree를 생성하면서 주목받고 있으며, Jujutsu(jj) 같은 차세대 VCS는 이 문제를 구조적으로 해결합니다.