[2. 공부]/[2.1 코딩]

🌳 Git Worktree로 멀티 브랜치 작업 효율적으로 관리하기

주식경이 2025. 3. 1. 16:14
반응형

개발을 하다 보면 여러 브랜치에서 동시에 작업해야 하는 상황이 자주 발생합니다. 예를 들어, 새로운 기능을 개발하면서도 긴급 버그를 수정해야 할 때가 있습니다. 하지만 Git에서는 하나의 작업 디렉토리에서 한 번에 하나의 브랜치만 체크아웃할 수 있기 때문에 작업 전환 시 파일 변경 사항이 충돌할 수 있습니다.

🔑 Git Worktree는 이러한 문제를 해결해줍니다. 여러 브랜치를 동시에 체크아웃하여 여러 작업 디렉토리를 사용할 수 있도록 도와줍니다. 이를 통해 다중 브랜치 작업을 빠르고 효율적으로 수행할 수 있습니다.

이 글에서는 Git Worktree의 개념, 사용법, 실전 예시, 주의사항, 그리고 효율적인 활용 팁을 알려드립니다. 🚀


🌱 1. Git Worktree란 무엇인가?

Git Worktree는 하나의 Git 저장소에서 여러 개의 작업 디렉토리를 생성하여 다른 브랜치를 동시에 작업할 수 있는 기능입니다.

📌 Git Worktree의 주요 특징

여러 브랜치 동시에 작업 가능
✅ 브랜치 전환 없이 각 작업 디렉토리에서 빠르게 코드 수정
빌드 및 테스트 환경 분리에 유용
기존 Git 명령어와 호환성 유지

TIP: 기능 개발 중 긴급 수정이나 코드 리뷰 시 매우 유용합니다.


🛠️ 2. Git Worktree 기본 사용법

📝 Step 1: Worktree 추가하기

새 작업 디렉토리 생성 및 브랜치 연결:

git worktree add <디렉토리명> <브랜치명>

예시: feature/login 브랜치를 login-feature 폴더에 연결

git worktree add ../login-feature feature/login

✔️ ../login-feature 폴더가 생성되며, 해당 디렉토리에서 feature/login 브랜치 작업 가능.


📝 Step 2: 기존 브랜치로 Worktree 추가하기

git worktree add ../bugfix-branch bugfix/login-issue

✅ 두 개의 폴더에서 각기 다른 브랜치를 동시에 작업할 수 있습니다.


📝 Step 3: 새로운 브랜치 생성 및 Worktree 추가

git worktree add -b <새 브랜치명> <디렉토리명> <기준 브랜치>

예시:

git worktree add -b hotfix/login-error ../hotfix-dir main

main 브랜치를 기준으로 새 브랜치를 생성하고 ../hotfix-dir에서 작업.


📝 Step 4: Worktree 목록 확인 및 제거

현재 Worktree 목록 확인:

git worktree list

출력 예시:

/home/user/project              (HEAD -> main)
/home/user/login-feature       (feature/login)
/home/user/hotfix-dir          (hotfix/login-error)

Worktree 제거:

git worktree remove ../login-feature

✅ 해당 폴더가 삭제되고 연결 해제됩니다.


🚀 3. 실전 예시: Git Worktree 활용 시나리오

🧩 예시 1: 기능 개발 중 긴급 버그 수정

1️⃣ 작업 중인 기능 브랜치:

git checkout feature/new-dashboard

2️⃣ 긴급 버그 수정을 위해 새 Worktree 추가:

git worktree add -b hotfix/critical-error ../hotfix-dir main
cd ../hotfix-dir
git commit -am "Fix critical error"

3️⃣ 버그 수정 완료 후 기능 브랜치로 복귀:

cd ../project  # 원래 작업 디렉토리

✅ 긴급 수정 중에도 기능 개발을 멈출 필요 없이 동시 작업 가능.


🧩 예시 2: 코드 리뷰 및 테스트 분리

코드 리뷰용 Worktree 추가:

git worktree add ../review-dir review-branch

빌드 및 테스트 환경 분리:

  • /project: 개발 작업 진행
  • /review-dir: 코드 리뷰 및 테스트 전용 사용
    이점: 빌드 시간이 오래 걸려도 개발 작업에 영향 없음.

🧩 예시 3: 과거 버전 코드 확인 및 비교

1️⃣ 특정 커밋 Worktree 추가:

git worktree add ../old-version <커밋 해시>

2️⃣ 이전 버전과 현재 코드 비교:

diff -r ../old-version ./current-dir

✅ 과거 코드 분석 시 빠르게 확인할 수 있습니다.


⚠️ 4. Git Worktree 사용 시 유용한 팁과 주의사항

💡 효율적인 활용 팁

폴더명에 브랜치 이름 포함: 관리 용이
작업 후 Worktree 제거: 불필요한 디렉토리 방지
git worktree prune 사용: 잘못된 참조 제거 및 정리
CI/CD 파이프라인과 연동: Worktree로 멀티 환경 테스트 가능

⚠️ 주의사항

✔️ 같은 브랜치를 두 개의 Worktree에서 사용 금지: Git 충돌 발생 가능
✔️ Worktree 제거 전 변경사항 커밋 필수: 데이터 손실 방지
✔️ 디렉토리 수 과다 시 관리 복잡: 필요한 만큼만 사용 권장
✔️ 다른 사용자와 공유 시 주의: Worktree는 로컬 전용 기능입니다.


📝 5. Git Worktree vs Git Clone 비교

기능Git WorktreeGit Clone

목적 멀티 브랜치 작업 별도 프로젝트 복제
저장 공간 적음 (하나의 Git 저장소 공유) 많음 (각 Clone마다 저장소 생성)
브랜치 작업 빠르고 효율적 Clone마다 브랜치 관리 필요
추천 상황 빠른 브랜치 전환 필요 시 독립적 프로젝트 필요 시

TIP: 동일 프로젝트 멀티 브랜치 작업 시에는 Git Worktree, 완전히 독립적인 작업이 필요하면 Git Clone 사용하세요.


📝 결론

Git Worktree는 멀티 브랜치 작업을 빠르고 효율적으로 관리할 수 있는 강력한 도구입니다. 긴급 버그 수정, 코드 리뷰, 과거 버전 확인 등 다양한 상황에서 작업 전환 시간을 절약할 수 있습니다. 하지만 Worktree 사용 후 정리를 잊지 말고, 필요한 만큼만 추가하여 관리하세요.

지금 바로 Git Worktree를 실습해보며 멀티 브랜치 작업의 효율을 경험해 보세요! 💻🚀

👉 다음 글에서는 "Git Ignore로 불필요한 파일 관리하기"를 다룹니다. 많은 기대 부탁드립니다!


🏷️ 추천 키워드

  1. Git Worktree 사용법
  2. 멀티 브랜치 작업 방법
  3. Git Worktree 제거 방법
  4. Git 브랜치 전환 팁
  5. 효율적인 Git 워크플로우
  6. 코드 리뷰 환경 설정
  7. Git Worktree vs Clone
  8. Git Worktree 충돌 해결
  9. 멀티 작업 디렉토리 관리
  10. 브랜치 동시 작업 방법

지금 바로 Git Worktree로 프로젝트 관리의 효율을 높이세요! 🚀

반응형