Git브랜치와 협업

worktree 기본과 병렬 브랜치 작업

브랜치마다 작업 디렉터리를 따로 열어 두고 동시에 여러 작업선을 다루는 `git worktree`의 핵심 개념과 사용 흐름을 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

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