branch는 작업의 '이력(버전)'을 나타내고, worktree는 그 작업을 진행하는 '실제 폴더(공간)'를 나타냅니다.
 
기존에는 여러 브랜치를 동시에 작업하려면 git checkout으로 브랜치를 교체하거나, 프로젝트 전체를 별도 폴더에 clone해야 했습니다. worktree를 사용하면 하나의 Git 저장소 안에서 여러 브랜치를 각기 다른 폴더에 동시 펼쳐놓고 작업할 수 있습니다.
 

핵심 차이점 비교

구분 Git Branch (브랜치) Git Worktree (워크트리)
개념 특정 커밋을 가리키는 포인터 (참조) 브랜치 파일들이 실제 배치되는 디렉토리 (작업 공간)
존재 위치 .git 내부의 메타데이터 실제 파일 시스템 상의 물리적 폴더
동시 작업 한 번에 하나의 브랜치만 체크아웃 가능 여러 브랜치를 각기 다른 폴더에 동시 체크아웃 가능
저장소 공유 해당 브랜치 고유의 커밋 이력 보유 .git 저장소(커밋 이력, 설정 등)를 모두 공유
비유 책의 특정 페이지를 표시하는 책갈피 책을 펼쳐서 읽고 작성하는 책상 위의 공간

언제 Worktree를 사용하면 좋을까?

  • 기능 개발 중 급한 버그 수정(Hotfix)이 들어왔을 때:
     
    진행 중인 작업을 git stash로 임시 저장하고 브랜치를 바꿀 필요 없이, 별도 워크트리 폴더를 열어 바로 버그를 수정하고 커밋할 수 있습니다.
  • 두 브랜치의 코드를 동시에 실행하거나 비교할 때:
     
    브랜치를 오가며 빌드/테스트할 필요 없이, 두 폴더에 각각 다른 브랜치를 띄워놓고 서로 비교할 수 있습니다.
  • 무거운 빌드 과정을 거치는 프로젝트:
     
    브랜치를 바꿀 때마다 빌드 아티팩트나 node_modules 등의 파일이 재구성되는 시간을 절약할 수 있습니다.

주요 Worktree 명령어

Bash
# 1. 새로운 워크트리 생성 (새 폴더에 특정 브랜치 연결)
# git worktree add <폴더경로> <브랜치명>
git worktree add ../my-hotfix feature/hotfix-login

# 2. 새로운 브랜치를 생성하면서 워크트리 생성
git worktree add -b feature/new-idea ../new-idea-dir

# 3. 현재 연결된 워크트리 목록 확인
git worktree list

# 4. 작업이 끝난 워크트리 삭제
git worktree remove ../my-hotfix
합니다. (충돌 방지를 위해 하나의 브랜치는 하나의 워크트리에서만 열 수 있습니다.)동일한 브랜치를 여러 워크트리에 동시에 체크아웃하는 것은 불가능 Git 규칙상 주의사항:
  
번호 제목 글쓴이 날짜 조회 수
» [Gemini] branch 와 worktree 의 차이점 황제낙엽 2026.09.27 11
40 버전 관리 이슈 케이스 (1) : 장기적으로 pull 하지 않은 개발자의 대량의 merge 이슈 발생 file 황제낙엽 2026.05.13 477
39 sourcetree - 특정 커밋으로 프로젝트 변경 황제낙엽 2025.08.26 671
38 git clone시 보안에 취약하지만 사용자 아이디와 비번 저장해놓고 사용하기 황제낙엽 2025.08.05 679
37 cherry pick 내가 원하는 커밋만 가져오기 file 황제낙엽 2022.02.17 1049
36 Git Extensions Online Manual 황제낙엽 2022.02.17 5436
35 심플한 커밋 이력 조회 (git log --pretty=format) [2] 황제낙엽 2022.01.12 1076
34 Git 특정 폴더 및 파일만 clone 하기 (작성중) 황제낙엽 2021.10.08 1015
33 git remote set-url file 황제낙엽 2021.09.03 904
32 git clone [bare/mirror] 정리 file 황제낙엽 2021.09.03 1488
31 Git Repository 이동하기 황제낙엽 2021.09.02 909
30 유용한 Git 명령어 몇가지 황제낙엽 2021.09.02 921
29 Git의 4가지 영역 황제낙엽 2021.09.02 904
28 Git bare repository 황제낙엽 2021.09.02 829
27 git reset의 3가지 옵션 제대로 이해하기 file 황제낙엽 2021.07.31 912
26 이전 커밋으로 되돌리기 (revert, reset) file 황제낙엽 2021.07.31 1066
25 Ubuntu 에 Git 설치 황제낙엽 2020.09.13 934
24 Git commit 이력(Merge pull request #00 from repo/branch) 깔끔하게 관리하기 file 황제낙엽 2016.10.04 876
23 10분만에 파악해보는 What is GitHub (Hello World) file 황제낙엽 2016.10.04 1114
22 태그(Tag) 생성 file 황제낙엽 2016.09.29 1202