🚦Git Flow 전략 완벽 정리
- 협업을 위한 체계적인 브랜치 관리 전략
✅ Git Flow란?
Git Flow는 Vincent Driessen이 제안한 Git 브랜치 관리 전략으로,
여러 명이 협업할 때 개발, 배포, 수정 작업을 안정적으로 나누어 진행할 수 있도록 체계를 잡아주는 방법입니다.
기본적으로 역할이 명확한 브랜치를 정의하고,
기능 개발 → 테스트 → 배포로 이어지는 일련의 과정을 브랜치 흐름으로 시각화합니다.
🏷️ Git Flow의 5가지 주요 브랜치
브랜치 | 역할 |
main | 최종 배포된 제품 버전이 존재 (항상 안정적인 코드) |
develop | 다음 버전을 위한 통합 개발 브랜치, 기능들이 이곳에 모임 |
feature/* | 새로운 기능 개발용 브랜치 (feature/login 등) |
release/* | 배포 전 단계에서 테스트/버그 수정 진행 (release/1.0.0) |
hotfix/* | 배포된 main 브랜치에 치명적 버그가 발생했을 때 긴급 수정용 (hotfix/urgent-bug) |
🧭 Git Flow 작업 흐름
1. main → 가장 안정적인 배포 코드
2. develop → 기능들을 병합해가는 통합 브랜치
[기능 개발 단계]
- develop → feature/* → develop
[배포 준비 단계]
- develop → release/* → main + develop
[긴급 버그 수정]
- main → hotfix/* → main + develop
🧪 예시 흐름 보기
✅ 기능 개발
git checkout develop
git checkout -b feature/login
# 작업 후
git commit -m "Add login feature"
git checkout develop
git merge feature/login
git branch -d feature/login
✅ 릴리즈 준비
git checkout develop
git checkout -b release/1.0.0
# 테스트 및 버그 수정
git commit -m "Fix minor issues"
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "Release 1.0.0"
git checkout develop
git merge release/1.0.0
git branch -d release/1.0.0
✅ 긴급 수정
git checkout main
git checkout -b hotfix/urgent-fix
# 버그 수정
git commit -m "Fix production bug"
git checkout main
git merge hotfix/urgent-fix
git tag -a v1.0.1 -m "Hotfix release"
git checkout develop
git merge hotfix/urgent-fix
git branch -d hotfix/urgent-fix
📦 Git Flow 전략의 장점
항목 | 설명 |
✅ 역할 구분 명확 | 브랜치마다 목적이 분리되어 협업에 유리 |
✅ 배포 시점 관리 쉬움 | release, hotfix로 안정된 배포 프로세스 가능 |
✅ 충돌 관리 용이 | 기능 별 feature 브랜치로 분산 작업 가능 |
✅ 안정성 확보 | main은 항상 배포 가능한 상태로 유지됨 |
⚠️ 단점 및 실무에서의 보완점
항목 | 설명 |
❗ 브랜치가 많아짐 | 브랜치 관리가 복잡해지고 무거워질 수 있음 |
❗ 빠른 배포와는 거리 있음 | CI/CD 파이프라인과 속도가 안 맞을 수 있음 |
❗ 릴리즈 주기가 짧으면 비효율 | release 브랜치가 너무 자주 생기면 오히려 불편함 |
💡 실무 팁
- 1~3인 규모의 사이드 프로젝트에는 단순한 main + feature/*만 써도 충분함
- 단순화된 GitHub Flow 또는 Trunk Based Development와 혼용하기도 함
- 릴리즈 자동화(CI/CD)와 함께 쓰려면 release 브랜치를 과감히 생략하기도 함
🔚 마무리
Git Flow는 역할이 명확한 브랜치 전략으로,
개발/테스트/배포 과정을 체계적으로 관리할 수 있게 도와주는 훌륭한 도구입니다.
협업이 많아지고 릴리즈 주기가 명확한 팀이라면,
Git Flow는 팀 생산성과 품질을 동시에 높여줄 수 있는 브랜치 전략입니다.
'Git > GitHub' 카테고리의 다른 글
Git Flow 전략 - 실전 예시 (0) | 2025.05.03 |
---|---|
GitHub - Image 올리기 (README, Issue, PR) (0) | 2021.08.22 |