협업에서는 브랜치 전략이 작업 흐름을 표준화하고, 릴리스 위험을 낮추며, CI/CD 자동화를 단순화한다. 이 글은 대표적인 네 가지 전략을 비교하고, 팀 상황에 맞는 선택 기준과 실전 체크리스트를 제시한다.
Vincent Driessen이 제안한 전략으로, 복수 릴리스와 긴급 패치를 명확히 분리한다. 다음과 같은 브랜치를 사용한다.
feature/login, feature/payment.1) feature/* 분기 → 구현/테스트 → PR → develop 병합
2) 릴리스시 release/* 분기 → 버그픽스/버전업 → main 병합+태그 → 변경분을 develop에도 병합
3) 운영 긴급 이슈 시 hotfix/* 분기(기준: main) → 수정 후 main 병합+태그, develop에도 병합

feature/{scope}-{short-desc}, release/{version}, hotfix/{issue-id}vMAJOR.MINOR.PATCH (SemVer), 예: v1.4.2메인라인 중심의 심플한 전략이다. 상시 배포, 웹 서비스에 적합하다.

환경(환경/브랜치) 중심 운영을 강조한다. 예: main → staging → production.
staging, production 등. main에서 staging으로 프로모션, staging에서 production으로 프로모션하는 식으로 “승급”한다.
trunk(=main) 하나를 중심으로 1~2일 내 병합을 원칙으로 한다. 대규모 조직은 Release Branch를 짧게만 운영한다.

| 상황/요구 | 추천 전략 | 이유 |
|---|---|---|
| 다중 릴리스, 온프레/규제 산업, 장기 안정화 필요 | Git Flow | 역할 분리, 핫픽스 루트 명확 |
| 상시 배포, 웹/SaaS, 작은 PR 중심 | GitHub Flow 또는 TBD | 단순/속도/자동배포 친화 |
| 환경별 검증/승급이 중요(staging→prod) | GitLab Flow | 환경 중심 운영 가시성 |
| 대규모 팀, 충돌 비용↓, feature flag 가능 | TBD | trunk 중심, 높은 배포 빈도 |
다이어그램 포인트: “전략 선택 트리” — 배포 빈도/규제/환경 수/팀 규모를 기준으로 분기.
feature/{scope}-{short-desc}, fix/{ticket-id}-{short}, release/{version}, hotfix/{ticket-id}-{short}feat:, fix:, docs:, refactor:, test:, chore: feat: add login (#123)MAJOR.MINOR.PATCH # feature 브랜치 생성
git checkout -b feature/auth
# 작업 후 PR → develop 병합
# 릴리스 준비
git checkout -b release/1.4.0 develop
# (버그 수정/문서/버전 업)
# 완료 후 main 병합 + 태그
git checkout main
git merge --no-ff release/1.4.0
git tag -a v1.4.0 -m "Release 1.4.0"
# develop에도 반영
git checkout develop
git merge --no-ff release/1.4.0
git push --follow-tags
다이어그램 포인트: “release 병합 이중 반영” — main·develop 양방향 화살표 강조.
# 작은 기능 브랜치
git checkout -b feature/quick-fix
# 작업 후 PR → 리뷰 통과 → main 병합 → CI가 자동 배포
git checkout -b hotfix/1234-critical main
# 수정/테스트
git checkout main
git merge --no-ff hotfix/1234-critical
git tag -a v1.4.1 -m "Hotfix critical issue #1234"
git checkout develop
git merge --no-ff hotfix/1234-critical
git push --follow-tags
feature/{domain}-{summary}, fix/{ticket}-{summary}, release/{version}, hotfix/{ticket}-{summary}[feat|fix|chore] scope: summary (#issue)squash and merge 권장(히스토리 단순화), 릴리스 브랜치는 merge commit 유지 가능전략의 “정답”은 팀의 배포 빈도, 규제 수준, 환경 수, 운영 성숙도에 따라 달라진다. 기본은 단순성이고, 복잡성은 필요한 만큼만 추가한다. 팀이 작고 배포가 잦다면 GitHub Flow/TBD로 시작하고, 릴리스 안정화·승급이 중요해지면 Git Flow/GitLab Flow의 요소를 점진적으로 도입한다.