개발을 하다 보면 여러 브랜치에서 동시에 작업해야 하는 상황이 자주 발생합니다. 예를 들어, 새로운 기능을 개발하면서도 긴급 버그를 수정해야 할 때가 있습니다. 하지만 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로 불필요한 파일 관리하기"를 다룹니다. 많은 기대 부탁드립니다!
🏷️ 추천 키워드
- Git Worktree 사용법
- 멀티 브랜치 작업 방법
- Git Worktree 제거 방법
- Git 브랜치 전환 팁
- 효율적인 Git 워크플로우
- 코드 리뷰 환경 설정
- Git Worktree vs Clone
- Git Worktree 충돌 해결
- 멀티 작업 디렉토리 관리
- 브랜치 동시 작업 방법
✅ 지금 바로 Git Worktree로 프로젝트 관리의 효율을 높이세요! 🚀
'[2. 공부] > [2.1 코딩]' 카테고리의 다른 글
🔄 Git Revert와 Reset의 차이 및 올바른 사용법 (0) | 2025.03.02 |
---|---|
📂 Git Ignore로 불필요한 파일 관리하기 (1) | 2025.03.01 |
🗂️ Git Stash로 작업 내용 임시 저장 및 복구 방법 (0) | 2025.03.01 |
🏷️ Git Tag로 버전 관리와 릴리즈 관리 방법 (2) | 2025.03.01 |
🐞 Git Bisect로 버그 원인 빠르게 찾는 방법 (0) | 2025.02.28 |