Git 브랜치 전략
여러 개발자가 하나의 저장소에 작업을 할 때, 효과적으로 협업하기 위해 git branch에 대한 규칙을 정하고 저장소를 잘 활용하기 위한 workflow를 정의하는 것
Git Flow 전략
소프트웨어의 소스코드를 관리하고 출시하기 위한 '브랜칭 관리 전략(branch management strategy)'
주요 브랜치
| 브랜치명 | 설명 |
|---|
| main | 제품 출시 버전을 관리하는 브랜치 |
| develop | 다음 출시 버전을 위해 개발하는 브랜치 |
| feature | 새로운 기능을 개발하는 브랜치 |
| release | 다음 출시 버전을 준비하는 브랜치 |
| hotfix | main 브랜치에서 발생한 버그를 수정하는 브랜치 |
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