Git의 3가지 분신술 — checkout, clone, worktree 시각 해부
대 AI 시대다. 나는 Claude Code를 활용해 여러 작업을 병렬로 진행하는 것이 점점 익숙해지고 있다. 터미널 탭 3개를 열어놓고, 각각 다른 feature를 동시에 구현한다. 이때 없어서는 안 될 도구가 git worktree다.
그런데 문득 궁금해졌다. checkout으로 브랜치를 바꾸는 것, clone으로 저장소를 복제하는 것, worktree로 작업 디렉토리를 추가하는 것 — 이 세 가지가 정확히 뭐가 다른 걸까? 디스크에는 뭐가 생기고, .git 안에서는 무슨 일이 일어나는 걸까?
글로 설명하면 길어지니까, 직접 보는 게 빠르다. 인터랙티브 시각화로 하나씩 해부해보자.
세 가지 방식은 디스크에 무엇을 남기는가
각 탭을 눌러 checkout, clone, worktree가 디스크에 어떤 구조를 만드는지 비교해보자.
.git 해부: 안에서는 무슨 일이 일어나는가
조감도에서 worktree가 .git을 "공유"한다는 걸 봤다. 그런데 정확히 뭘 공유하고, 뭘 독립적으로 갖는 걸까? .git 폴더 안으로 들어가보자.
아래에서 각 항목을 클릭하면 역할과 실제 내용을 확인할 수 있다. 초록색은 모든 worktree가 공유하는 항목, 주황색은 각 worktree가 독립적으로 갖는 항목이다. 오른쪽 위의 "worktree 추가" 버튼을 눌러 worktree 추가 전후를 비교해보자.
명령어 가이드: 이것만 알면 된다
구조를 이해했으니 이제 실전이다. git worktree의 핵심 명령어 4개만 알면 바로 쓸 수 있다.
git worktree add <path> [<branch>]-b <branch>새 브랜치를 생성하면서 worktree 추가--detachdetached HEAD 상태로 생성 (브랜치 없이)worktree에 한번 맛들이면 stash로 돌아가기 어렵다. 브랜치 전환 없이 디렉토리만 이동하면 되는 그 편안함은, 써본 사람만 안다. git worktree add 한 줄이면 된다. 일단 써보자.