Git Worktree로 여러 브랜치를 동시에 작업하기
원제 Working with Git Worktrees in Magit
105 포인트댓글 44

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는 이 문제를 구조적으로 해결합니다.