튜토리얼 15: Git 워크트리 — 병렬 에이전트
튜토리얼 15: Git 워크트리 — 병렬 에이전트 — 공식 문서 기반 이해하기 쉬운 가이드
이 글은 Hermes Agent 공식 튜토리얼 시리즈의 일부입니다. 전체 튜토리얼 보기
주방이 하나뿐인데 셰프가 두 명이라고 상상해 보세요. 두 명이 같은 조리대에서 요리하면 팔꿈치가 부딪히고, 밀가루가 튀고, 서로의 요리를 망칠 겁니다. Git 워크트리는 각 셰프에게 자신만의 조리대를 주는 것과 같습니다—같은 주방이지만, 작업 공간은 분리된 거죠. 바로 이 기능이 여러분의 AI 에이전트에게 해주는 일입니다.
왜 필요할까? 단일 체크아웃의 문제점
Hermes Agent는 실행 중인 폴더를 프로젝트 루트로 취급합니다. 같은 폴더에서 두 개의 에이전트를 실행하면, 두 에이전트가 모든 파일을 공유하게 됩니다. 즉:
- 에이전트 A가 에이전트 B가 편집 중인 파일을 삭제할 수 있습니다.
- 어떤 변경 사항이 어떤 실험에서 나온 건지 구분할 수 없습니다.
- 롤백이 지저분해집니다—한 에이전트의 실행 취소가 다른 에이전트의 작업을 날려버릴 수 있습니다.
워크트리는 각 에이전트에게 다음을 제공하여 이 문제를 해결합니다:
- 자체 브랜치 (변경 사항이 충돌하지 않도록)
- 자체 작업 폴더 (파일이 충돌하지 않도록)
- 자체 체크포인트 기록 (
/rollback이 해당 에이전트에게만 영향을 미치도록)
1단계: 워크트리 만들기 (기본 명령어)
메인 저장소(.git/ 폴더가 있는 곳)에서 다음을 실행하세요:
git worktree add ../my-agent-folder -b my-feature-branch
하나씩 살펴보겠습니다:
../my-agent-folder– 새 폴더가 생성될 위치 (메인 저장소 외부)-b my-feature-branch– 이 에이전트를 위한 새 브랜치를 생성
이제 프로젝트의 깨끗하고 격리된 복사본이 생겼습니다.
2단계: Hermes를 워크트리에 연결하기
워크트리는 두 가지 방법으로 사용할 수 있습니다:
옵션 A: CLI (가장 간단함)
워크트리로 cd한 다음 그곳에서 Hermes를 실행하세요:
cd ../my-agent-folder
hermes chat
옵션 B: 메시징 게이트웨이 (Slack이나 Discord 등)
게이트웨이를 사용한다면 ~/.hermes/config.yaml을 편집하고 terminal.cwd를 워크트리 경로로 설정하세요:
terminal:
cwd: /path/to/my-agent-folder
이제 해당 에이전트가 받는 모든 메시지는 격리된 폴더 안에서 처리됩니다.
3단계: 여러 에이전트를 병렬로 실행하기
필요한 만큼 워크트리를 만드세요:
git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2
그런 다음 각 폴더에서 Hermes 세션을 하나씩 시작하세요. 서로의 파일을 건드릴 일이 없고, 각자 커밋할 브랜치도 따로 있습니다.
4단계: 작업이 끝나면 정리하기
실험이 끝나면 워크트리를 제거하세요:
git worktree remove ../agent-experiment-1
git branch -d exp-1
첫 번째 명령은 폴더를 삭제하고, 두 번째 명령은 브랜치를 삭제합니다. 메인 저장소는 깨끗하게 유지됩니다.
꼭 기억할 핵심 포인트
- 워크트리는 가볍습니다 – 전체 저장소를 복사하는 게 아니라 필요한 파일만 복사합니다.
- 각 에이전트는 자체
/rollback기록을 가집니다 – 더 이상 에이전트 간 실행 취소 사고는 없습니다. - 브랜치를 현명하게 사용하세요 – 명확하게 이름을 지어서(예:
refactor-login,fix-bug-42) 각 에이전트가 무엇을 했는지 알 수 있게 하세요.
요약
Git 워크트리를 사용하면 여러 Hermes 에이전트가 서로 발을 밟지 않고 같은 프로젝트에서 실행될 수 있습니다. 에이전트마다 워크트리를 하나씩 만들고, Hermes를 그곳에 연결하기만 하면 끝입니다. 마치 각 셰프에게 자신만의 도마를 주는 것과 같습니다—같은 주방, 충돌 제로.
다음 단계: 튜토리얼 16에서는 Docker로 Hermes를 배포합니다—자기 치유형, 상시 대기 어시스턴트를 만들어 볼 거예요.
📖 공식 문서
この記事は Hermes Agent の공식 문서に基づいています:공식 문서 › user-guide/git-worktrees