내 잡다한 노트
Git Flow 전략 본문
Git Flow는 Git을 활용한 브랜치 관리 전략 중 하나로, 코드의 개발, 릴리스, 배포 과정을 체계적으로 관리할 수 있도록 설계된 워크플로우입니다. Vincent Driessen이 제안한 방식으로, 프로젝트 개발 단계에 따라 명확한 브랜치 구조와 규칙을 제공합니다.
핵심 아이디어
Git Flow는 다음과 같은 주요 브랜치로 구성됩니다:
- main (또는 master)
- 항상 안정적이고 배포 가능한 코드만 존재.
- 실제 운영 환경에 배포된 코드가 이 브랜치에 포함됩니다.
- develop
- 새 기능 개발이 완료된 코드를 통합하는 브랜치.
- 개발 진행 중의 최신 상태를 유지합니다.
주요 보조 브랜치
Git Flow 전략에서는 기능 추가, 버그 수정, 배포 등을 위한 브랜치를 체계적으로 구분합니다.
- Feature 브랜치
- 목적: 새로운 기능 개발.
- 생성: develop에서 분기.
- 완료 시: develop에 병합.
- 브랜치 이름 예: feature/login-page.
git checkout -b feature/login-page develop - Release 브랜치
- 목적: 배포 준비 (버그 수정, 최종 테스트).
- 생성: develop에서 분기.
- 완료 시: main에 병합 후 태그(tag) 생성.
- 브랜치 이름 예: release/1.0.0.
git checkout -b release/1.0.0 develop - Hotfix 브랜치
- 목적: 운영 중인 코드의 긴급 버그 수정.
- 생성: main에서 분기.
- 완료 시: main과 develop에 병합.
- 브랜치 이름 예: hotfix/critical-bug.
git checkout -b hotfix/critical-bug main
Git Flow 워크플로우 요약
- 기능 개발
- develop에서 feature 브랜치 생성 → 작업 → 완료 후 develop에 병합.
- 릴리스 준비
- develop에서 release 브랜치 생성 → 버그 수정 및 테스트 → main에 병합 후 태그 생성.
- 배포 후 핫픽스
- main에서 hotfix 브랜치 생성 → 수정 → main과 develop에 병합.
Git Flow의 장점
- 체계적인 브랜치 구조
- 브랜치 역할이 명확히 나뉘어 협업과 관리가 용이.
- 안정적인 배포
- 운영 환경(main)은 항상 안정성을 보장.
- 병렬 작업 효율성
- 여러 기능과 릴리스 작업을 병렬로 처리 가능.
Git Flow의 단점
- 복잡성
- 브랜치가 많아지면 관리가 어려워질 수 있음.
- 소규모 팀이나 단순한 프로젝트에는 과도할 수 있음.
- 릴리스 주기
- 지속적 배포(Continuous Deployment)에는 적합하지 않음.
Git Flow를 도입해야 할 프로젝트 유형
- 복잡한 프로젝트
- 여러 사람이 협업하는 경우.
- 장기적인 개발 계획이 필요한 경우.
- 명확한 릴리스 관리가 필요한 경우
- 버전 태깅과 릴리스 프로세스가 중요할 때.
'Git' 카테고리의 다른 글
Github에서 사용하는 라이언스 설명 (0) | 2024.12.25 |
---|---|
Git 브랜치 관리 전략 (0) | 2024.11.25 |
Git fetch와 pull의 차이 (0) | 2024.11.25 |
Git switch와 checkout의 차이 (0) | 2024.11.25 |
Git 자주 쓰이는 명령어 정리 (0) | 2024.11.25 |