Git Flow 브랜치 전략에 대해 설명해 주세요.

2024. 8. 19. 06:09코드잇 스프린트/위클리 페이퍼

Git Flow 브랜치 전략에 대해 설명해 주세요.


1. Git Branch 전략

  • 효과적인 깃 협업을 위한 브랜치 관리 방식
  • work flow 및 브랜치 규칙 정의 후 이에 따라 작업 수행
  • 깃 브랜치 전략
    • Git Flow
    • GitHub Flow
    • GitLab Flow
    • TBD(Trunk-Based Development) 등

2. Git Flow

  • Vincent Driessen이 제안한 대표적인 브랜치 전략

브랜치 종류

  • main : 제품 배포
  • develop : 제품 개발
  • feature : 기능 개발(병합 후 삭제)
  • release : 제품 준비(병합 후 삭제)
  • hotfix : 제품 버그 수정(병합 후 삭제)

전략 흐름

  • feature에서 기능 개발 후 develop에 병합
  • develop에 기능 쌓이면 release로 분기
  • release에서 제품 준비 후 main에 병합
  • 제품 버그 발생 시 hotfix 분기 후 해결하여 main에 병합
  • 완료된 release와 hotfix는 develop에 병합

전략 특징

  • 대규모 프로젝트와 같이, 뚜렷한 릴리즈 주기 속에서 체계적인 개발을 진행할 때 유리함

3. GitHub Flow

  • GitHub에서 제안한 단순화된 브랜치 전략

브랜치 종류

  • main : 제품 배포
  • feature : 기능 개발(병합 후 삭제)

전략 흐름

  • feature에서 기능 개발 후 PR을 거쳐 main에 병합

전략 특징

  • 소규모 프로젝트와 같이, 빠른 개발 및 배포가 필요할 때 유리함

4. GitLab Flow

  • GitLab에서 제안한 절충적인 브랜치 전략

브랜치 종류

  • main : 제품 개발
  • feature : 기능 개발(병합 후 삭제)
  • pre-production : 제품 준비(병합 후 삭제)
  • production : 제품 배포

전략 흐름

  • feature에서 기능 개발 후 main에 병합
  • main에 기능 쌓이면 pre-production로 분기
  • pre-production에서 제품 준비 후 production에 병합
  • 완료된 pre-production은 main에 병합

전략 특징

  • 타 전략과 달리 main을 개발용으로 사용
  • Git Flow와 GitHub Flow의 절충안으로, 빠른 배포와 함께 퀄리티가 보장돼야 할 때 유리함

5. TBD

  • Trunk-based Development
  • GitHub에서 제안하는 최소화된 브랜치 전략

브랜치 종류

  • main(trunk) : 제품 배포
  • short-feature : 단기 기능 개발(병합 후 삭제)

전략 흐름

  • feature에서 단기 기능 개발 후 main에 병합

전략 특징

  • 빠른 개발 및 배포가 필요할 때 유리함
  • main에 바로 병합하므로 CI/CD가 중요함

6. 참고 자료