CS/DEPLOY

git flow 전략

휴먼코딩 2024. 8. 14. 22:05

Git Flow 전략

  • 메인 브랜치 (Main Branch)
    • main 또는 master 브랜치라고도 하며, 프로덕션에 배포된 안정적인 코드가 포함된다.
  • 개발 브랜치 (Develop Branch)
    • develop 브랜치는 개발 중인 기능이 통합되는 브랜치로, 새로운 기능 개발이 완료된 후 main 브랜치에 병합된다.
  • 기능 브랜치 (Feature Branch)
    • feature/ 접두사를 사용하여 생성되며, 새로운 기능 개발을 위한 브랜치이다. develop 브랜치에서 파생되어 작업이 완료된 후 develop 브랜치에 병합된다.
  • 릴리즈 브랜치 (Release Branch)
    • release/ 접두사를 사용하여 생성되며, 릴리즈 준비를 위한 브랜치이다. 기능이 완료된 후 릴리즈 브랜치를 통해 최종 버그 수정과 테스트를 수행하며, 완료되면 develop 및 main 브랜치에 병합된다.
  • 핫픽스 브랜치 (Hotfix Branch)
    • hotfix/ 접두사를 사용하여 생성되며, 프로덕션 환경에서 발견된 긴급한 문제를 수정하기 위한 브랜치이다.
    • 수정이 완료되면 main 및 develop 브랜치에 병합된다.

뭔가를 배포하거나 개발을 할때는 Develop이 Baseline이 되고
운영 중에 뭔가 급하게 고쳐야될 때 Master 브랜치에서 Hotfix 브랜치로

개발이 완료 된 후에는 release 브랜치에서 QA를 거쳐서 문제가 없을 경우 main 브랜치에 배포

 

Epic Branch

  • Epic Branch는 여러 기능(Feature Branch)을 포함하는 큰 작업 단위이다.
  • 특정 프로젝트나 큰 기능을 나타내며, 여러 개의 기능 브랜치를 포함하여 작업을 진행한다.
  • 생성: Epic Branch는 일반적으로 epic/ 접두사를 사용하여 생성된다.
  • 예를 들어, epic/user-authentication이라는 브랜치를 생성한다.

1. 주요 기능 또는 큰 작업이 정의되면 develop 브랜치에서 Epic Branch를 생성한다.

git checkout develop
git checkout -b epic/user-authentication

 

2. Epic Branch에서 필요한 여러 기능을 구현하기 위해 기능 브랜치를 생성한다.

예를 들어, epic/user-authentication 브랜치에서 feature/login과 feature/registration 브랜치를 생성하여

각각의 기능을 개발한다.

git checkout epic/user-authentication
git checkout -b feature/login
git checkout epic/user-authentication
git checkout -b feature/registration

 

3. 각 기능 브랜치에서 작업이 완료되면 Epic Branch로 병합한다.

# 기능 브랜치에서 작업 후
git checkout epic/user-authentication
git merge feature/login
git merge feature/registration

 

4. Epic Branch에서 모든 기능이 완료되면, Epic Branch를 develop 브랜치에 병합하여 전체 기능을 통합한다. 

git checkout develop
git merge epic/user-authentication

 

5. 이후, 릴리즈 준비가 완료되면 develop 브랜치에서 릴리즈 브랜치를 생성한다.

git checkout develop
git checkout -b release/1.0