오늘의 AI 용어: 깃 워크트리 (Git Worktree)

좋은 아침이에요! 오늘은 AI 에이전트 여러 개를 동시에 돌릴 때 기본기로 자리 잡고 있는 깃 워크트리(git worktree)예요.

이게 뭔가요?
저장소 하나에서 작업 폴더를 여러 개 꺼내 쓰는 Git 기능이에요. 폴더마다 자기 브랜치와 파일을 따로 갖지만, 커밋 기록과 원격 저장소는 하나를 같이 써요. 그래서 폴더 A에서는 에이전트가 새 기능을 만들고, 폴더 B에서는 다른 에이전트가 버그를 고쳐도 서로의 파일을 건드리지 않아요. 잘된 브랜치만 머지하고 나머지는 지우면 끝이에요.

시점 정리
– 기능 자체는 전혀 새롭지 않아요. git worktree 명령은 2015년 7월 Git 2.5에서 처음 들어왔어요. 원래는 사람이 급한 핫픽스를 할 때 지금 하던 작업을 stash하지 않고 폴더를 하나 더 여는 용도였어요.
– Claude Code에도 이미 claude --worktree 옵션이 있어요(공식 문서).
– 이번에 다시 화제가 된 건 JetBrains가 Apache 2.0으로 공개한 에이전트 IDE ThinkRail 덕분이에요. 2026년 10월 24일(미국 시간) 해커뉴스 첫 화면에 올랐고, 10월 27일에는 Product Hunt에도 올라왔어요. “에이전트에게는 내 작업 폴더가 아니라 워크트리를 줘라”가 핵심 구호예요. 저장소 자체는 2026년 7월에 만들어졌고 첫 소개 글은 8월에 나왔으니, 이번에 갑자기 생긴 프로젝트는 아니에요.

왜 지금 뜨나요?
에이전트를 하나만 쓸 땐 몰랐는데, 두세 개를 동시에 돌리면 같은 파일을 서로 덮어쓰는 사고가 바로 나요. 컨테이너나 VM은 무겁고, 폴더를 통째로 복사하면 디스크와 동기화가 귀찮아요. 워크트리는 Git만 있으면 되고 몇 초면 만들어져서, “에이전트 하나에 워크트리 하나”가 가장 가벼운 격리 방법이 됐어요. ThinkRail은 여기에 더해 모듈마다 SPEC.md를 두고, 세션이 끝나도 의도가 남게 했어요.

Claude만 쓰던 개발자라면 이렇게 써보세요
– 터미널 두 개를 열고 claude -w feature-login, claude -w fix-flaky-test처럼 이름을 다르게 줘서 시작해요. 각자 새 브랜치에서 일해요.
– .claude/worktrees/는 .gitignore에 넣고, .env처럼 Git에 없는 파일은 .worktreeinclude에 적어두면 새 워크트리에 자동으로 복사돼요.
– 워크트리는 새로 체크아웃한 폴더라서 의존성 설치가 다시 필요해요. 이것도 에이전트에게 맡기면 돼요.
– 역할 나누기는 이렇게 하면 편해요. 서로 다른 파일을 건드리는 독립적인 작업은 에이전트들에게 병렬로 넘기고, 어떤 브랜치를 머지할지와 충돌 해결 방향은 사람이 정해요. 같은 파일을 크게 고치는 작업 두 개는 병렬로 돌리지 말고 순서대로 하세요. 나중에 머지 충돌로 시간이 더 들어요.
– 작은 수정 하나라면 굳이 워크트리를 만들 필요 없이 원래 폴더에서 하면 돼요.

연관 용어
– 머지 큐 (Merge Queue): 여러 브랜치를 한 번에 하나씩 최신 main 위에서 테스트한 뒤 차례로 합쳐 주는 장치예요. 병렬 에이전트가 많아질수록 쓸모가 커져요.
– 리베이스 (Rebase): 내 브랜치의 커밋을 최신 main 위로 옮겨 다시 쌓는 거예요. 오래 돈 워크트리를 머지하기 전에 주로 해요.
– 리빙 스펙 (Living Spec): 코드 옆에 두고 에이전트가 계속 고쳐 나가는 설계 문서예요. ThinkRail의 SPEC.md 그래프가 그 예예요.

댓글 남기기