· TIL · 2 min read
[TIL] git worktree로 브랜치 동시에 작업하기
핫픽스 중에 기존 작업을 stash하지 않고, git worktree로 여러 브랜치를 동시에 체크아웃하는 방법.
문제
feature 브랜치에서 작업 중인데 긴급 hotfix가 필요합니다. git stash → checkout → 수정 → 다시 checkout → stash pop… 번거롭습니다.
해결: git worktree
# hotfix 브랜치를 별도 디렉토리에 체크아웃
git worktree add ../hotfix-dir hotfix/urgent-fix
# 해당 디렉토리에서 작업
cd ../hotfix-dir
# ... 수정, 커밋, 푸시 ...
# 작업 완료 후 worktree 제거
cd ../original-repo
git worktree remove ../hotfix-dir실무 활용
# PR 리뷰를 별도 디렉토리에서
git worktree add ../review origin/feature/new-api
# 현재 worktree 목록 확인
git worktree list
# 정리 (삭제된 브랜치의 worktree 제거)
git worktree prune핵심 포인트
- 같은 .git을 공유: 별도 clone이 아니므로 디스크 절약
- 동시 브랜치 작업: IDE 창을 각 worktree에 열어서 병렬 작업
- 제약: 같은 브랜치를 두 곳에서 체크아웃 불가
- CI/CD 활용: 빌드와 테스트를 다른 worktree에서 병렬 수행
stash보다 안전하고, 컨텍스트 스위칭 비용 제로