기본 패턴
text
git worktree add ../project-hotfix hotfix/login-bug설명
- 보통 하나의 저장소 디렉터리에서는 한 브랜치만 checkout해 두고 작업합니다. 그래서 다른 브랜치를 잠깐 열어 봐야 할 때 stash나 checkout 전환이 자주 필요해집니다.
git worktree는 같은 저장소를 기반으로 여러 작업 디렉터리를 만들어, 브랜치마다 별도 폴더에서 동시에 작업하게 해 줍니다. 즉 "브랜치 전환"을 "작업 디렉터리 분리"로 바꾸는 도구입니다.- hotfix를 긴급히 확인하면서도 기존 feature 작업을 건드리지 않고 싶을 때, 리뷰용 브랜치를 따로 열어 두고 싶을 때, release 브랜치와 main 브랜치를 나란히 비교하고 싶을 때 특히 유용합니다.
- 이 기능의 핵심은 협업보다도 컨텍스트 전환 비용 절감입니다. stash를 남발하거나 미완성 변경을 들고 브랜치를 오가는 대신, 작업 공간 자체를 분리해 사고를 단순하게 만듭니다.
- 규모가 큰 저장소일수록 worktree의 가치가 커집니다. Git을 "히스토리 도구"에서 "작업 공간 관리 도구"로 확장해서 쓰는 대표적인 사례입니다.
빠른 정리
| 명령/개념 | 의미 |
|---|---|
git worktree add <path> <branch> | 새 작업 디렉터리 추가 |
| 장점 | 브랜치별 작업 공간 분리 |
| 잘 맞는 상황 | hotfix, 리뷰, release 비교, 병렬 작업 |
| 핵심 효과 | stash와 checkout 전환 감소 |
주의할 점
worktree는 매우 편하지만, 같은 저장소의 여러 작업 디렉터리를 다루는 만큼 어느 폴더가 어떤 브랜치인지 헷갈리기 쉽습니다. 경로 이름과 브랜치 이름을 일관되게 정리하는 편이 좋습니다.
참고 링크
1 sources