git worktree로 여러 브랜치를 동시에 작업하는 방법
개발 중에는 현재 작업을 유지한 채 다른 브랜치에서 긴급 수정이나 리뷰를 해야 할 때가 있습니다. 이때 매번 stash를 하거나 브랜치를 바꾸면 작업 흐름이 끊깁니다. git worktree는 이런 상황에서 매우 유용한 도구입니다.
git worktree란
git worktree는 하나의 Git 저장소에서 여러 작업 디렉터리를 만들고, 각 디렉터리를 서로 다른 브랜치에 연결하는 기능입니다.
즉, 같은 저장소를 공유하면서도 다음처럼 동시에 작업할 수 있습니다.
- 디렉터리 A: 기능 개발 브랜치
- 디렉터리 B: main 브랜치 긴급 수정
- 디렉터리 C: 리뷰용 브랜치 확인
기본 사용법
기존 브랜치를 새 디렉터리에 체크아웃하려면 다음처럼 사용합니다.
git worktree add ../project-main main
새 브랜치를 만들면서 worktree를 만들 수도 있습니다.
git worktree add -b feat/new-feature ../project-new-feature main
현재 worktree 목록은 다음 명령으로 확인합니다.
git worktree list
언제 쓰면 좋은가
git worktree는 다음 상황에서 특히 편합니다.
- 긴 기능 개발 중 main 브랜치에 핫픽스를 해야 할 때
- PR 리뷰를 위해 다른 브랜치를 잠깐 실행해야 할 때
- 여러 실험 브랜치를 동시에 비교해야 할 때
- 브랜치 전환 때문에 빌드 산출물이나 의존성이 계속 바뀌는 것이 번거로울 때
주의할 점
같은 브랜치를 두 worktree에 동시에 체크아웃할 수는 없습니다. 각 worktree는 서로 다른 브랜치를 사용해야 합니다.
또한 node_modules, .env, 빌드 캐시 같은 파일은 worktree마다 별도로 관리됩니다. 그래서 새 worktree를 만든 뒤에는 필요한 환경 파일을 복사하고 의존성을 설치해야 할 수 있습니다.
정리 방법
작업이 끝난 worktree는 제거합니다.
git worktree remove ../project-main
이미 디렉터리를 수동으로 지웠다면 참조를 정리합니다.
git worktree prune
듀오랩스가 보는 관점
작은 팀이나 1인 개발 환경에서도 병렬 작업은 자주 발생합니다. git worktree를 익혀두면 브랜치 전환 스트레스를 줄이고, 리뷰·핫픽스·실험을 더 안전하게 분리할 수 있습니다.