브랜치 구조 및 역할
Git Flow는 여러 브랜치를 통해 기능 개발, 버그 수정, 배포 준비 등을 독립적으로 처리할 수 있게 해주는 구조임. 각각의 브랜치는 특정 역할을 담당하고, 이 역할을 명확하게 이해하면 팀원 간 충돌을 최소화하면서 작업을 효율적으로 진행할 수 있음.
메인 브랜치는 항상 안정된 코드만 포함하고 있어야 함. 즉, 배포 가능한 코드만 모아둔 브랜치라고 보면 됨. 메인 브랜치는 프로젝트의 중심이기 때문에 매우 중요함.
master (또는 main)
v1.0.0 같은 형식)를 달아 관리함.develop
master 브랜치로 배포하기 전 최종 검토할 코드가 여기에 모임.보조 브랜치는 특정 작업(기능 개발, 버그 수정, 배포 준비 등)을 독립적으로 진행하기 위해 생성하는 브랜치임. 작업이 완료되면 메인 브랜치로 병합 후 삭제함.
feature/* (기능 개발 브랜치)
develop 브랜치에서 갈라져 나와 작업을 시작함.feature/기능이름*으로 만듦. 예를 들어, 회원가입 기능을 개발 중이라면 feature/회원가입 이런 식으로 이름을 붙임.develop 브랜치로 병합한 후, 해당 feature 브랜치는 삭제함.release/* (배포 준비 브랜치)
develop 브랜치에서 갈라져 나와, 배포 전에 필요한 버그 수정이나 문서 작업을 처리함.release/버전이름 형식으로 만듦. 예를 들어, 1.0.0 버전을 배포하려면 release/1.0.0 이렇게 이름을 짓는 것임.master*와 **develop*에 모두 병합되고 브랜치는 삭제함.hotfix/* (긴급 수정 브랜치)
master*에서 직접 갈라져 나와 긴급 수정 작업을 진행함.hotfix/버그이름 형식으로 만들고, 예를 들어 로그인 오류가 발생했다면 hotfix/로그인_오류_수정 이런 식으로 만듦.master*에 빠르게 병합하여 운영 환경에 반영하고, 이후 **develop*에도 병합하여 개발 상태도 최신으로 유지함.feature/*): 기능 개발 작업을 각 개발자가 독립적으로 진행한 후, 완료되면 develop 브랜치로 병합함.release/*): 배포할 준비가 되면 **release/* 브랜치를 만들어 작은 수정 작업을 완료한 후, **master*와 **develop*에 병합함.