본문 바로가기
개발

Git Worktree 완전정복 🌿 브랜치 안 바꾸고 동시 작업하기

by D-Project 2026. 9. 30.

여러분 혹시 코딩하다가 "어 잠깐, 이거 커밋 안 했는데 급한 버그 수정 요청 왔네?" 하고 git stash 눌러본 적 있으세요? 🙋‍♀️ 저는 이번 주에도 세 번이나 그랬어요. 브랜치 왔다 갔다 하면서 stash 했다 pop 했다... 이게 은근 스트레스더라고요. 그러다가 최근에 다시 눈여겨보게 된 게 바로 Git Worktree예요. 심지어 인텔리제이(IntelliJ IDEA)가 2026.2 버전부터 이 기능을 GUI로 지원하기 시작했더라고요! 오늘은 worktree가 뭔지, 실무에서 어떻게 쓰는지, 그리고 인텔리제이에서는 어떻게 클릭 몇 번으로 되는지까지 싹 정리해볼게요 ✨

Git Worktree, 대체 뭐길래? 🌿

한 마디로 하나의 저장소를 여러 개의 작업 폴더로 동시에 열어두는 기능이에요. 원래 Git은 한 폴더에서 브랜치를 하나만 체크아웃할 수 있잖아요? worktree를 쓰면 main, feature/login, hotfix/urgent 브랜치를 각각 다른 폴더에 펼쳐두고 동시에 작업할 수 있어요. 신기한 건 이 폴더들이 전부 .git 히스토리 하나를 공유한다는 거예요. 그래서 커밋 로그도, 설정도 다 같이 써요.

구분 기존 방식 (checkout/stash) Git Worktree
작업 중 전환 stash 후 브랜치 이동 필요 폴더만 바꾸면 끝
빌드·테스트 상태 브랜치 바꾸면 초기화됨 폴더별로 유지됨
동시 작업 사실상 불가능 여러 브랜치 동시 진행
히스토리 폴더마다 따로 .git 하나 공유

실무에서 이렇게 씁니다 💼

"그래서 이걸 언제 쓰는데?" 싶으실 텐데, 저는 요즘 이런 상황에서 제일 요긴하게 쓰고 있어요.

상황 worktree 활용법
🚨 급한 핫픽스 현재 작업 그대로 두고 별도 폴더에서 바로 수정·배포
👀 PR·MR 리뷰 리뷰할 브랜치를 새 worktree로 열어서 직접 실행해보기
🧪 빌드·테스트 대기 테스트 도는 동안 다른 폴더에서 다음 작업 이어가기
🤖 AI 코딩 에이전트 에이전트 작업용 폴더를 따로 분리해서 충돌 방지

특히 요즘은 AI 코딩 에이전트를 여러 개 동시에 돌리는 분들도 많아서, 작업 공간을 물리적으로 분리해주는 worktree가 다시 주목받는 느낌이에요.

기본 명령어 정리 ⌨️

CLI로 쓸 땐 이 네 가지만 기억하면 돼요.

# 새 worktree 만들기 (브랜치도 같이 생성)
git worktree add -b hotfix/urgent ../hotfix-urgent main

# 지금 있는 worktree 목록 보기
git worktree list

# 다 쓴 worktree 삭제
git worktree remove ../hotfix-urgent

# 수동으로 지운 폴더 흔적 정리
git worktree prune

⚠️ 딱 하나 주의할 점! 같은 브랜치를 두 worktree에서 동시에 체크아웃할 수는 없어요. 그리고 worktree 폴더는 저장소 안이 아니라 바깥(형제 폴더)에 만드는 게 안전해요.

인텔리제이 2026.2, GUI로 더 쉽게 🖥️

명령어 외우기 귀찮으신 분들 반가운 소식이에요! IntelliJ IDEA 2026.2부터 Git worktree를 도구 창(Tool Window)에서 바로 관리할 수 있게 됐어요.

  1. Version Control(Git) 도구 창 열기 — Windows·Linux는 Alt+9, macOS는 상단 메뉴 View → Tool Windows → Git 에서 열 수 있어요.
  2. 도구 창 상단 드롭다운에서 Worktrees 탭 선택
  3. Git 메뉴 → New Worktree 클릭 → 소스 브랜치, worktree 이름, 저장 위치 지정
  4. 목록에서 worktree를 더블클릭하면 바로 그 작업 폴더로 전환돼요

목록 화면에서 Locked, Prunable 같은 상태도 바로 보여주고, 다 쓴 worktree는 우클릭 한 번으로 삭제·정리(prune)까지 가능해요. 터미널 왔다 갔다 안 해도 되니까 확실히 편해요.

주의사항 체크리스트 ✅

  • worktree 폴더는 프로젝트 바깥에 만들기
  • 같은 브랜치, 두 곳에서 동시 체크아웃 금지
  • 폴더를 직접 옮겼다면 git worktree repair 실행하기
  • submodule 많은 프로젝트라면 지원이 아직 불완전하니 참고하기
  • 다 쓴 worktree는 바로바로 remove·prune으로 정리하기 (안 그러면 폴더가 계속 쌓여요 😅)

CLI vs IDE, 뭐가 더 나을까? ⭐

항목 CLI (git worktree) IntelliJ GUI
편의성 ⭐⭐⭐ ⭐⭐⭐⭐⭐
학습 난이도 ⭐⭐ (명령어 암기 필요) ⭐⭐⭐⭐ (직관적)
상태 파악 터미널 텍스트 목록·상태 아이콘으로 한눈에
자동화·스크립트 ⭐⭐⭐⭐⭐ 스크립트엔 부적합

CI 스크립트나 자동화에 넣을 땐 CLI, 평소 개발할 땐 IDE GUI — 이렇게 섞어 쓰는 게 제일 효율적이더라고요.

이런 분께 추천해요 🙋

  • 여러 브랜치를 자주 오가는 백엔드·프론트엔드 개발자라면 stash 스트레스에서 해방될 수 있어요.
  • PR 리뷰를 자주 하는 팀 리드라면 리뷰 브랜치를 매번 새 폴더로 열어서 안전하게 테스트할 수 있어요.
  • AI 코딩 에이전트를 여러 개 돌리는 분이라면 작업 폴더 분리로 충돌 걱정을 덜 수 있어요.
  • 인텔리제이 계열 IDE(IntelliJ, PyCharm, WebStorm, GoLand, PhpStorm) 사용자라면 2026.2 업데이트로 바로 써볼 수 있어요.

마무리 💌

Git worktree, 이름만 들으면 좀 어려워 보이는데 막상 써보면 "왜 이제 알았지" 싶은 기능이에요. 특히 인텔리제이에서 GUI로 지원하기 시작하면서 진입 장벽이 확 낮아진 느낌이에요. 급한 수정 건이나 PR 리뷰 때문에 브랜치 갈아타느라 스트레스받으셨던 분들이라면 이번 주말에 한번 테스트해보시는 거 어떨까요? 여러분은 브랜치 전환할 때 어떤 방법 쓰고 계세요? 댓글로 알려주세요 👇

📚 참고 자료