Daily log

git worktree를 사용하여 여러 브랜치를 동시에 작업하고, 컨텍스트 스위칭 비용을 줄여 개발 효율을 높이는 방법을 알아봅니다.

왜 git worktree를 사용해야 할까요?

① 복잡한 개발 환경, 이제 안녕!

개발하다 보면 여러 기능을 동시에 개발해야 하는 경우가 생기는데요. 기존 방식으로는 브랜치를 checkout하고, commit하고, push하는 과정이 번거롭고, 실수라도 하면 코드가 꼬여버리는 경우가 종종 있었어요. 특히 급하게 다른 브랜치로 전환해야 할 때, 현재 작업 중인 내용을 commit하지 않고는 이동할 수 없어 불편했죠.

② 병렬 개발, 생산성 향상의 핵심

git worktree는 이러한 문제를 해결해주는 아주 유용한 도구입니다. 하나의 저장소에서 여러 개의 작업 디렉토리를 생성하여 병렬적인 개발이 가능하게 해주거든요. 마치 여러 개의 독립된 개발 환경을 사용하는 것처럼 느껴져요.


git worktree 핵심 개념

항목 설명
Worktree git 저장소의 특정 브랜치를 체크아웃하여 작업하는 디렉토리
Head 현재 Worktree가 가리키는 브랜치
Main Worktree git 저장소를 처음 clone했을 때 생성되는 기본 Worktree
Linked Worktree Main Worktree에서 생성된 추가적인 Worktree

[git 저장소] ├── .git (git metadata) ├── main worktree (기본 작업 디렉토리) │ └── ... (파일) ├── linked worktree 1 (추가 작업 디렉토리) │ └── ... (파일) └── linked worktree 2 (또 다른 작업 디렉토리) └── ... (파일)


git worktree 사용법: 단계별 가이드

① 1단계: 새로운 Worktree 생성

새로운 브랜치를 기반으로 Worktree를 생성하려면 다음 명령어를 사용합니다.

bash git worktree add

  • <path>: 새로운 Worktree를 생성할 디렉토리 경로 (예: ../feature-branch)
  • <branch>: Worktree에 체크아웃할 브랜치 (예: feature/my-new-feature)

예시:

bash git worktree add ../feature-auth feat/auth

이 명령어는 feat/auth 브랜치를 기반으로 ../feature-auth 디렉토리에 새로운 Worktree를 생성합니다. 이제 해당 디렉토리로 이동하여 작업을 시작할 수 있습니다.

② 2단계: Worktree로 이동하여 작업

새로 생성된 Worktree 디렉토리로 이동합니다.

bash cd ../feature-auth

이제 이 디렉토리에서 git status, git add, git commit 등의 명령어를 사용하여 독립적으로 작업을 수행할 수 있습니다. 다른 Worktree의 변경사항에 영향을 주지 않으면서 말이죠.

③ 3단계: Worktree 목록 확인

현재 활성화된 Worktree 목록을 확인하려면 다음 명령어를 사용합니다.

bash git worktree list

이 명령어는 각 Worktree의 경로와 Head 브랜치 정보를 보여줍니다.

④ 4단계: Worktree 제거

더 이상 필요하지 않은 Worktree는 다음 명령어로 제거할 수 있습니다.

bash git worktree remove

  • <path>: 제거할 Worktree의 디렉토리 경로

예시:

bash git worktree remove ../feature-auth

주의: Worktree에 변경사항이 있는 경우, 먼저 commit하거나 stash해야 합니다. 강제로 제거하려면 --force 옵션을 사용할 수 있지만, 변경사항이 유실될 수 있으므로 주의해야 합니다.

bash git worktree remove --force ../feature-auth


git worktree 활용 팁

  • 기능별 디렉토리 분리: 각 기능별로 Worktree를 생성하여 병렬적으로 개발하면 코드 충돌을 줄이고, 개발 집중도를 높일 수 있습니다 (Cursor 사용법 총정리).
  • 코드 리뷰 환경 구축: 코드 리뷰를 위한 별도의 Worktree를 생성하여 원본 코드에 영향을 주지 않고 리뷰를 진행할 수 있습니다.
  • 실험적인 개발: 새로운 아이디어나 기술을 실험할 때, 별도의 Worktree를 생성하여 자유롭게 테스트해볼 수 있습니다.

자주 묻는 질문

Q: git worktree와 branch의 차이점은 무엇인가요?

A: branch는 코드의 분기점을 의미하며, worktree는 해당 branch를 체크아웃하여 실제로 작업하는 디렉토리를 의미합니다. branch는 여러 개를 생성할 수 있지만, 실제로 코드를 수정하고 빌드하려면 해당 branch를 checkout해야 합니다. worktree는 이러한 checkout 과정을 간소화하고, 여러 branch를 동시에 작업할 수 있도록 지원합니다.

Q: git worktree를 사용할 때 주의할 점은 무엇인가요?

A: 각 Worktree는 독립적인 작업 환경을 제공하지만, 결국 하나의 git 저장소를 공유합니다. 따라서, 동시에 여러 Worktree에서 동일한 파일을 수정하는 경우, merge 충돌이 발생할 수 있습니다. 또한, Worktree를 제거할 때, 변경사항이 commit되지 않은 경우 데이터가 유실될 수 있으므로 주의해야 합니다.


마무리

git worktree는 병렬 개발 환경을 구축하고, 컨텍스트 스위칭 비용을 줄여 개발 생산성을 향상시키는 데 매우 유용한 도구입니다. 특히 여러 기능을 동시에 개발하거나, 코드 리뷰, 실험적인 개발을 진행할 때 그 효과를 톡톡히 볼 수 있을 거예요. 저도 실제로 사용해보니 예전보다 훨씬 효율적으로 개발할 수 있게 되었어요.

git worktree 사용을 위한 체크리스트:

  • git 버전이 2.5 이상인지 확인
  • 새로운 기능을 개발할 때 worktree를 생성
  • 작업 완료 후 commit 및 push
  • 더 이상 필요 없는 worktree는 제거

이제 git worktree를 적극적으로 활용하여 더욱 즐겁고 효율적인 개발 경험을 만들어보세요!

출처: 당신의 AI 개발, 클로드 코드가 망치고 있다? 지금 바로 알아야..., Cursor 사용법 총정리: 팀원에게 설명해주고 정리한 실전..., 컨테이너 격리와 병렬 개발: devcontainer & git worktree

'개발 > Git' 카테고리의 다른 글

충돌 발생 후  (0) 2026.02.21
왜 Git Rebase를 사용해야 할까요?  (0) 2026.02.21
git merge를 사용한 경우  (0) 2026.02.21
GitHub SSH Clone 설정 가이드 (Mac 기준)  (0) 2025.07.08

공유하기

facebook twitter kakaoTalk kakaostory naver band