[Git] Git 브랜치 전략: `Git Flow`

soma·2024년 3월 24일

Git

목록 보기
5/7
post-thumbnail

Git 브랜치 전략

여러 개발자가 하나의 저장소에 작업을 할 때, 효과적으로 협업하기 위해 git branch에 대한 규칙을 정하고 저장소를 잘 활용하기 위한 workflow를 정의하는 것

Git Flow 전략

소프트웨어의 소스코드를 관리하고 출시하기 위한 '브랜칭 관리 전략(branch management strategy)'

주요 브랜치

브랜치명설명
main제품 출시 버전을 관리하는 브랜치
develop다음 출시 버전을 위해 개발하는 브랜치
feature새로운 기능을 개발하는 브랜치
release다음 출시 버전을 준비하는 브랜치
hotfixmain 브랜치에서 발생한 버그를 수정하는 브랜치

Git Flow 브랜치의 흐름

Git Flow

이미지 출처

1. develop branch

  • main 브랜치에서 develop 브랜치(개발 중인 최신 코드를 포함해야 함) 분기

2. develop branch → feature branch

  • 기능 개발을 위해 개발자마다 feature 브랜치 생성
  • feature 브랜치는 develop 브랜치에서 분기되며, 개별 기능 개발을 위한 작업을 진행하는 데 사용

3. feature branch → (Merge) → develop branch

  • 기능 개발이 완료되면 feature 브랜치를 develop 브랜치로 병합
  • 일반적으로 프로젝트 진행 시에는 Pull Request 를 통해 작업 내용을 Review 받은 후 해당 PR 을 Merge 하는 방식으로 진행

4. release branch

  • QA(Quality Assurance)를 위해 develop 브랜치에서 release 브랜치 생성
  • QA와 테스트를 모두 통과했다면, 배포를 위해 release 브랜치를 master 브랜치로 병합

5. release branch → (Merge) → develop branch

  • release 브랜치 내부에서 오류 수정이 진행되었을 경우 동기화를 위해 develop 브랜치에 release 브랜치를 병합

6. develop branch → (Merge) → main branch

  • 최종적으로, develop 브랜치의 코드를 main 브랜치로 병합하여 새로운 출시 버전 생성

7. main branch

  • main 브랜치에 있는 코드는 안정적인 상태로 간주되어 프로덕션 환경에 배포

8. main branch → horfix branch → main branch

  • 출시 버전에서 발생한 긴급하고 중요한 버그 수정 또는 보안 문제를 해결하기 위해 사용
  • main 브랜치에서 분기되어 개발 및 테스트 환경에서 수정 작업을 수행한 후 main 브랜치에 병합

참고사이트 1
참고사이트 2
참고사이트 3

profile
배움의 기록을 차곡차곡

0개의 댓글