기술

Claude Code 두 개를 동시에 돌리는 법, --worktree 한 줄

한 폴더에서 Claude Code 두 개를 돌리면 같은 파일을 서로 덮어씁니다. claude --worktree로 세션마다 작업 폴더를 나누는 법과, .env가 따라오지 않는 함정을 해 보고 정리했습니다.

Claude Code 하나가 일하는 동안 기다리기 아까워 두 번째 터미널을 열어 본 적이 있다면, 같은 파일을 서로 덮어쓰는 문제도 겪어 봤을 겁니다. git worktree로 세션마다 작업 폴더를 나누면 해결됩니다.

근거: Claude Code 문서 Run parallel sessions with worktrees (2026년 11월 2일 확인). 실행 결과는 Claude Code 2.1.316에서 확인했습니다.

켜는 법

claude --worktree add-sub   # 또는 claude -w add-sub
claude -w add-mul           # 다른 터미널에서, 이름만 다르게
  • 저장소 루트의 .claude/worktrees/<이름>/에 작업 폴더가 생기고, worktree-<이름> 브랜치가 새로 만들어집니다.
  • 이름을 빼면 Claude가 bright-running-fox 같은 이름을 붙입니다.
  • .claude/worktrees/를 .gitignore에 넣어 두면 원래 폴더에 추적 안 된 파일로 보이지 않습니다.
  • 처음 쓰는 폴더라면 claude를 한 번 그냥 실행해 신뢰 확인을 끝내야 --worktree가 동작합니다.

해 봤다

calc.py에 add()만 있는 저장소를 만들고, 두 세션에 같은 파일을 고치게 했습니다. 하나는 sub(), 하나는 mul()을 넣으라고 했습니다.

$ git worktree list
.../wtdemo                               5a1ed26 [master]
.../wtdemo/.claude/worktrees/add-mul     5a1ed26 [worktree-add-mul]
.../wtdemo/.claude/worktrees/add-sub     5a1ed26 [worktree-add-sub]

두 세션은 함께 7.4초 만에 끝났고, 각 worktree의 calc.py에는 각자의 함수만 들어갔습니다. 원래 폴더의 calc.py는 그대로였습니다. 이후에는 평소처럼 브랜치를 합치면 됩니다.

함정: .env는 따라오지 않는다

worktree는 새로 꺼낸 작업 폴더라서 git이 무시하는 파일은 없습니다. 이번에도 두 worktree 모두 .env가 없었습니다. 환경 변수가 필요한 테스트나 서버가 안 뜨는 이유가 이것일 때가 많습니다.

프로젝트 루트에 .worktreeinclude를 만들고 .gitignore 문법으로 적으면, 새 worktree를 만들 때마다 복사됩니다.

.env
.env.local

의존성(node_modules, 가상환경)도 새로 설치해야 합니다.

끝낼 때

대화형 세션을 끝내면 Claude가 worktree를 확인합니다. 바뀐 게 없으면 지우고, 작업이 남아 있으면 남길지 지울지 묻습니다. -p로 돌린 세션은 묻지 않으니 직접 정리합니다.

git worktree remove .claude/worktrees/add-sub

오늘 할 일

터미널 두 개를 열고 claude -w 이름으로 이름만 다르게 켜 보세요. 한쪽은 기능, 한쪽은 테스트처럼 겹치지 않는 일을 맡기면 기다리는 시간이 줄어듭니다.

관련 글: Claude Code가 코드를 망쳤다면 git reset 전에 Esc 두 번

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.

esc

↑↓ 고르기↵ 열기? 단축키

해변에서 주운 것

읽으러 가기 →
guest@beachcombers — zsh

단축키

⌘K 또는 /
글·작업·개발일지 찾기
R
해변 산책 — 아무 글 하나 줍기
`
터미널 열기
←→
쪽 넘기기 (휠·스와이프도 됩니다)
?
이 안내
esc
닫기