내 잡다한 노트

Git Flow 전략 본문

Git

Git Flow 전략

peanutwalnut 2024. 11. 25. 22:23

Git Flow는 Git을 활용한 브랜치 관리 전략 중 하나로, 코드의 개발, 릴리스, 배포 과정을 체계적으로 관리할 수 있도록 설계된 워크플로우입니다. Vincent Driessen이 제안한 방식으로, 프로젝트 개발 단계에 따라 명확한 브랜치 구조와 규칙을 제공합니다.

 

 

핵심 아이디어

Git Flow는 다음과 같은 주요 브랜치로 구성됩니다:

  1. main (또는 master)
    • 항상 안정적이고 배포 가능한 코드만 존재.
    • 실제 운영 환경에 배포된 코드가 이 브랜치에 포함됩니다.
  2. develop
    • 새 기능 개발이 완료된 코드를 통합하는 브랜치.
    • 개발 진행 중의 최신 상태를 유지합니다.

 

 

주요 보조 브랜치

Git Flow 전략에서는 기능 추가, 버그 수정, 배포 등을 위한 브랜치를 체계적으로 구분합니다.

  1. Feature 브랜치
    • 목적: 새로운 기능 개발.
    • 생성: develop에서 분기.
    • 완료 시: develop에 병합.
    • 브랜치 이름 예: feature/login-page.
    명령어 예:
    git checkout -b feature/login-page develop
  2. Release 브랜치
    • 목적: 배포 준비 (버그 수정, 최종 테스트).
    • 생성: develop에서 분기.
    • 완료 시: main에 병합 후 태그(tag) 생성.
    • 브랜치 이름 예: release/1.0.0.
    명령어 예:
    git checkout -b release/1.0.0 develop
  3. Hotfix 브랜치
    • 목적: 운영 중인 코드의 긴급 버그 수정.
    • 생성: main에서 분기.
    • 완료 시: main과 develop에 병합.
    • 브랜치 이름 예: hotfix/critical-bug.
    명령어 예:
     
    git checkout -b hotfix/critical-bug main

 

Git Flow 워크플로우 요약

  1. 기능 개발
    • develop에서 feature 브랜치 생성 → 작업 → 완료 후 develop에 병합.
  2. 릴리스 준비
    • develop에서 release 브랜치 생성 → 버그 수정 및 테스트 → main에 병합 후 태그 생성.
  3. 배포 후 핫픽스
    • main에서 hotfix 브랜치 생성 → 수정 → main과 develop에 병합.

 

Git Flow의 장점

  1. 체계적인 브랜치 구조
    • 브랜치 역할이 명확히 나뉘어 협업과 관리가 용이.
  2. 안정적인 배포
    • 운영 환경(main)은 항상 안정성을 보장.
  3. 병렬 작업 효율성
    • 여러 기능과 릴리스 작업을 병렬로 처리 가능.

Git Flow의 단점

  1. 복잡성
    • 브랜치가 많아지면 관리가 어려워질 수 있음.
    • 소규모 팀이나 단순한 프로젝트에는 과도할 수 있음.
  2. 릴리스 주기
    • 지속적 배포(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