Skip to content
푸땡로그
Go back

에이전트 시대에 git worktree가 다시 뜨는 이유

작업 중인 브랜치를 멈춰두고 급한 버그를 처리하려다 stash만 늘어난 경험이 있다면, git worktree가 왜 다시 주목받는지 바로 이해할 수 있습니다. GitHub Blog는 이 기능을 단순한 Git 고급 기능이 아니라, 병렬 작업과 에이전트 협업에 맞는 기본 단위로 봅니다.

먼저 결론부터 말하면, worktree는 브랜치보다 “병렬 작업”에 더 잘 맞는 실행 단위입니다. 같은 저장소를 여러 작업 디렉터리로 나누면, 한쪽 컨텍스트를 유지한 채 다른 일도 동시에 진행할 수 있습니다.

기준 작성 시점 2026-07-15 · GitHub Blog 원문 스냅숏 기준입니다.

이 글에서 다루는 내용은 세 가지입니다.


배경 / 왜 필요한가?

브랜치 전환 자체는 익숙합니다. 문제는 “지금 하던 일”이 머릿속과 에디터에 깊게 박혀 있을 때 생깁니다.

긴 기능 작업 중 급한 핫픽스가 들어오면 보통은 stash를 남기고 main으로 이동한 뒤 새 브랜치를 만들고, 수정하고, 다시 돌아옵니다. 단순해 보이지만 실제로는 파일 재로딩, 의존성 재설치, 기억 복원이 따라옵니다.

GitHub Blog가 강조하는 포인트도 여기입니다. worktree는 이 전환 비용을 줄여서, 한 저장소 안에서 여러 작업을 동시에 유지하게 해 줍니다.

이 흐름은 AI 에이전트가 여러 세션을 병렬로 돌리는 요즘의 작업 방식과도 잘 맞습니다. 인간도, 에이전트도, 같은 저장소를 두고 각각 독립된 작업 공간을 가지면 덜 흔들립니다.


핵심 개념

worktree의 핵심은 간단합니다. 하나의 Git 저장소에서 여러 작업 디렉터리를 분리해 쓸 수 있다는 점입니다.

flowchart LR
  A[하나의 저장소] --> B[원래 작업 디렉터리]
  A --> C[핫픽스용 worktree]
  A --> D[실험용 worktree]
  B --> E[기능 개발 유지]
  C --> F[긴급 수정]
  D --> G[새 아이디어 검증]

원문은 먼저 stash와 브랜치 전환의 불편함을 보여 준 뒤, 같은 상황을 worktree로 바꾸면 훨씬 덜 흔들린다고 설명합니다. 핵심은 기존 브랜치 상태를 지우지 않고 새 작업 공간을 여는 것입니다.

브랜치 전환과 stash의 부담

원문은 이런 식의 흐름을 보여 줍니다.

git stash "wip feature login"
git checkout main
git checkout -b hotfix-bug

이 방식은 익숙하지만, 컨텍스트 스위칭 비용이 큽니다. 어떤 파일을 어디까지 수정했는지, 지금 어떤 문맥이었는지 다시 되살려야 하니까요.

worktree가 만드는 흐름

worktree를 쓰면 원래 작업은 그대로 두고, 별도의 폴더에 새 브랜치를 붙여서 일할 수 있습니다.

git worktree add ../hotfix-workspace -b hotfix-bug main

이 한 줄이 만드는 변화는 큽니다. 기존 기능 작업 디렉터리를 그대로 둔 채, 새 폴더에서 핫픽스만 처리할 수 있습니다.

GitHub Blog는 이 방식이 stash 충돌 위험이 없고, 에디터 문맥이 깨지지 않으며, 진짜 병렬 작업이 가능하다고 정리합니다.

제거도 명시적으로

작업이 끝나면 worktree를 정리해야 합니다.

git worktree remove ../hotfix-workspace

이 부분은 꽤 중요합니다. worktree는 편하지만, 정리하지 않으면 폴더가 금방 늘어납니다.


왜 지금 다시 뜨나?

Git worktree 자체는 새 개념이 아닙니다. 다만 최근에 다시 주목받는 이유는 작업 방식이 바뀌었기 때문입니다.

GitHub Blog는 지금의 개발이 예전보다 훨씬 더 병렬적이라고 봅니다. 한 사람이 여러 세션을 동시에 운영하고, 코드 작성만큼 코드 리뷰와 검증이 중요해졌으며, 에이전트도 하나의 작업 단위로 계속 병렬 실행됩니다.

이때 worktree는 꽤 자연스러운 바닥입니다.

상황브랜치 + stashworktree
급한 핫픽스 대응기존 문맥을 잠시 접어야 함별도 폴더에서 바로 처리
실험용 수정현재 작업과 충돌하기 쉬움독립 공간에서 안전하게 검증
에이전트 병렬 작업세션이 겹치기 쉬움작업 디렉터리를 분리하기 쉬움
돌아오기문맥 복구가 필요함원래 작업을 그대로 유지

GitHub Copilot app이 기본적으로 새 worktree를 만드는 흐름을 지원하는 것도 같은 맥락입니다. 도구가 worktree를 기본값으로 밀기 시작했다는 건, 이 패턴이 실제 작업 흐름으로 자리 잡고 있다는 뜻입니다.

Tip AI 에이전트와 함께 일할수록 worktree의 장점이 커집니다. 사람이 기능 개발을 계속하는 동안, 에이전트는 다른 worktree에서 리뷰용 수정이나 실험을 병렬로 돌릴 수 있기 때문입니다.

GitHub Copilot app에서의 의미

원문은 GitHub Copilot app에서 worktree가 “그냥 되는” 수준으로 통합되어 있다고 보여 줍니다. 사용자는 홈 화면에서 새 세션의 작업 위치를 고를 수 있고, 기본값이 새 worktree입니다.

GitHub Copilot app의 새 worktree 드롭다운에서 작업 위치를 선택하는 화면

이 이미지는 GitHub Copilot app이 새 세션을 시작할 때 New worktree, Local repository, Cloud 중 어디에서 작업할지 고르게 해 주는 화면을 보여 줍니다.

또 다른 화면에서는 생성된 worktree 이름, 위치, 프로젝트, 변경 사항을 확인할 수 있습니다.

생성된 worktree의 이름과 경로, 프로젝트 정보를 보여 주는 화면

이 둘을 같이 보면 메시지는 분명합니다. worktree는 단순한 Git 고급 기능이 아니라, 에이전트 기반 작업 흐름의 기본 단위로 다뤄지고 있습니다.


주의사항 / 팁

GitHub Blog도 worktree의 단점을 꽤 솔직하게 짚습니다.

주의 worktree는 편하지만 공짜는 아닙니다. 각 worktree마다 의존성을 따로 설치하면 디스크가 빨리 차고, 폴더를 정리하지 않으면 작업 공간이 지저분해집니다. 같은 브랜치를 두 개의 worktree에서 동시에 체크아웃할 수도 없습니다.

기억해 둘 것

이건 단점이라기보다, worktree를 “작은 독립 작업 공간”으로 다뤄야 한다는 신호에 가깝습니다.


마무리

git worktree가 다시 뜨는 이유는 단순합니다. 지금의 개발은 한 브랜치에 한 마음만 두는 방식보다, 여러 작업을 동시에 유지하는 방식에 더 가깝기 때문입니다.

브랜치와 stash는 여전히 유용합니다. 다만 병렬 작업, 에이전트 협업, 빠른 컨텍스트 전환이 필요한 순간에는 worktree가 더 자연스럽습니다.

이 글을 읽고 나면 다음 기준으로 판단하면 됩니다.

  1. 지금 작업을 잠깐 멈춰도 되는가?
  2. 다른 작업을 같은 저장소에서 바로 병렬로 돌려야 하는가?
  3. 컨텍스트를 잃는 비용이 큰가?

세 질문에 “예”가 많다면, worktree를 기본값으로 둘 이유가 충분합니다.

실제로 GitHub Copilot app까지 이 흐름을 기본값으로 밀고 있는 만큼, worktree는 이제 “알아두면 좋은 기능”을 넘어 “병렬 작업의 기본 패턴”에 가깝습니다.


참고 자료


Share this post on:

Previous Post
OpenAI가 작업형 AI로 수렴하는 방식: GPT-5.6, ChatGPT Work, Codex 데스크톱
Next Post
에이전트 브라우징 시대의 봇 탐지: Cloudflare Precursor