git worktree로 여러 브랜치를 동시에 작업하는 방법
작성자 홍서진
듀오랩스 대표·3분 읽기
개발 중에는 현재 작업을 유지한 채 다른 브랜치에서 긴급 수정이나 리뷰를 해야 할 때가 있습니다. 이때 매번 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를 익혀두면 브랜치 전환 스트레스를 줄이고, 리뷰·핫픽스·실험을 더 안전하게 분리할 수 있습니다.
우리 서비스에 적용할 계획이 있으신가요?
기술 자문·개발 범위 상담 살펴보기 →함께 읽기
- Orca: 코딩 에이전트 여러 개를 git worktree로 나눠 돌리는 오픈소스 앱Claude Code를 터미널 두 개에서 동시에 띄우고 각각 다른 일을 시켜 본 적이 있다면 금방 부딪히는 문제가 있습니다. 두 에이전트가 같은 폴더의 같은 파일을 고칩니다. 한쪽이 테스트를 돌리는 사이 다른 쪽이 코드를 바꾸고, 어느 변경이 누구 것인지 커밋할 때 가려내야 합니다.
- git push 후 자동 검사가 시작되는 이유: Continuous Integration(CI) 입문코드를 수정하고 로컬에서 잘 동작하는 것까지 확인했습니다. 이제 아래처럼 GitHub에 올립니다.
- code 명령: PATH에 없을 때 등록하는 두 가지 방법터미널에서 VS Code로 뭔가를 열려고 code .을 쳤는데 command not found: code가 떴습니다. VS Code는 이미 깔려 있었습니다. /Applications/Visual Studio Code.app에 앱 자체는 멀쩡히 있었고, 문제는 그 앱을 실행하는 code 명령이 PATH 어디에도 없다는 것…
- CodeRabbit, Warp AI, Cursor는 무엇이 다를까AI 개발 도구가 많아지면서 이름은 비슷하지만 역할이 전혀 다른 도구들이 함께 비교됩니다. CodeRabbit, Warp AI, Cursor도 모두 개발자를 돕지만 같은 범주의 제품은 아닙니다.
- 새 맥북 개발 환경 세팅: git clone이 가져오지 않는 것들맥북을 새로 받고 하던 프로젝트를 이어서 하려 했습니다. 리포를 클론하고 npm install 을 돌린 다음 개발 서버를 띄웠는데, 브라우저에 이게 떴습니다.