Git 워크트리 & 병렬 작업 흐름
- git 워크트리란 무엇인가 — 하나의 리포, 여러 작업 디렉터리, 각각 자기 브랜치
- 정확히 무슨 문제를 푸는가: 병렬 Claude 세션이 같은 파일에서 충돌하는 것을 막기
- 워크트리를 추가·나열·제거하는 네 개의 명령
- 이 기법이 값을 하는 때 — 그리고 병합 시점에 무는 세 가지 함정
- 워크트리가 서브에이전트와 어떻게 조합되는가: 세션 간 병렬성 대 세션 내 병렬성
git 워크트리는 하나의 저장소가 여러 작업 디렉터리를 갖게 하며, 각각 다른 브랜치로 체크아웃됩니다. 이것을 Claude Code와 짝지으면 같은 프로젝트에서 여러 세션을 병렬로 실행할 수 있습니다 — 각각 자기 파일을 편집하며 충돌 없이.
이것이 푸는 문제
두 Claude 세션이 같은 작업 디렉터리를 동시에 편집하면 서로의 변경에 걸려 넘어집니다. 워크트리는 각 세션에 자기 디렉터리와 브랜치를 주므로, 병렬 작업은 당신이 병합할 때까지 격리된 채로 유지됩니다.
기본
네 개의 명령이 전체 워크플로를 감당합니다: 워크트리 추가(새 디렉터리 + 새 브랜치), 존재하는 것 나열, 끝나면 하나 제거.
Guided walkthrough1 of 4
- 리포에서 git worktree add ../app-feature-a -b feat-a 는 새 디렉터리와 새 브랜치를 한 번에 만듭니다.
- git worktree add ../app-fix-123 -b fix-123 — 첫 번째와 나란히 있는 두 번째 격리 디렉터리/브랜치.
- git worktree list 는 모든 작업 디렉터리와 각각의 브랜치를 보여줍니다.
- git worktree remove ../app-feature-a 는 워크트리를 없애 낡은 디렉터리가 쌓이지 않게 합니다.
네 명령 워크플로
# from your repo git worktree add ../app-feature-a -b feat-a # new dir + new branch git worktree add ../app-fix-123 -b fix-123 git worktree list # when done with one: git worktree remove ../app-feature-a
각 워크트리 디렉터리에서 Claude Code 세션을 열고 독립적으로 일하게 하세요.
값을 하는 때
- 동시에 진행하고 싶은 병렬 기능/수정.
- 다른 곳에서 계속 작업하는 동안 한 워크트리에서 오래 걸리는 작업.
- 메인 체크아웃에서 격리된 위험한 실험.
함정
- 병합 되돌리기를 주의하세요: 브랜치는 결국 병합됩니다 — 충돌은 그때 드러나며, 작업 중에는 아닙니다. 워크트리를 집중되고 짧게 유지하세요.
- 상태를 가진 공유 리소스(하나의 개발 DB, 하나의 포트)를 분리하지 않고 두 워크트리에서 실행하지 마세요.
- git worktree remove로 정리해 낡은 디렉터리가 쌓이지 않게 하세요.
워크트리 vs 서브에이전트
두 가지 다른 병렬성 축 — 서로 경쟁하지 않고 쌓입니다.
| 무엇을 병렬화하나 | 격리 | |
|---|---|---|
| 서브에이전트 | 하나의 세션 안에서의 작업(위임) | 격리된 컨텍스트 |
| 워크트리 | 디스크 상 세션 간의 작업 | 격리된 브랜치/파일 |
이들은 잘 조합됩니다: 워크트리 안의 세션이 스스로 서브에이전트를 생성할 수 있습니다.
- 두 Claude 세션이 같은 리포를 동시에 건드려야 할 때 워크트리를 쓰세요. 한 세션이 작업 덩어리를 격리된 컨텍스트로 넘겨야 할 때 서브에이전트를 쓰세요.
스스로 점검하기
0/4- git 워크트리 = 하나의 리포, 여러 작업 디렉터리, 각각 자기 브랜치 — 충돌 없는 병렬 Claude 세션의 기반.
- 하나의 작업 디렉터리에 두 세션은 서로 걸려 넘어집니다. 세션당 워크트리 하나가 병합 전까지 파일과 브랜치를 격리합니다.
- git worktree add ../dir -b branch 는 디렉터리 + 브랜치를 만들고, list는 보여주고, remove는 정리합니다.
- 병렬 기능/수정, 다른 작업과 나란히 오래 걸리는 작업, 격리된 위험한 실험에 값을 합니다.
- 병합 되돌리기를 조심하고, 상태를 가진 리소스(DB, 포트)를 워크트리 간에 공유하지 말고, 항상 정리하세요 — 그리고 워크트리는 서브에이전트와 조합됨을 기억하세요.