대표적인 Git Branch 전략에는 Git-Flow
와 Github-Flow
가 있다.
이번 포스트에서는 Git-Flow
에 대해 살펴보자.
브랜치를 크게 4가지로 나누어 개발하는 전략이다.
메인 브랜치는 master, develop branch
이고
feature, release, hotfix branch
는 중심 브랜치에 merge 후 삭제한다.
master branch
,develop branch
를 보통 메인 브랜치로 사용한다.
master
- 배포 가능한 상태만 관리하는 브랜치이다.
develop
- 다음에 배포할 것을 개발하는 브랜치이다.
- 이 브랜치는 통합 브랜치의 역할을 하며, 평소에 해당 브랜치를 기반으로 개발을 진행한다.
feature branch
,topic branch
를 보통 보조 브랜치로 사용한다.
기능을 개발하는 브랜치로develop branch
로부터 분기하여 만든다.
feature
- 기능을 완성하면
develop branch
로 merge한다. (결과가 실망스러우면 버리기도 한다)- 보통 local 저장소에만 있는 브랜치이다. (origin 에는 push하지 않는다)
release branch
는 배포를 위한 최종적인 버그 수정 등의 개발을 수행한다.
- 배포 가능한 상태가 되면
master branch
에 merge하고, 출시된master branch
에 버전 태그를 추가한다. (v0.1, v0.2..)release branch
에서 기능을 점검하며 발견한 버그 수정 사항은develop branch
에도 적용해준다.
hotfix branch
는 배포한 버전에서 긴급하게 수정해야 하는 부분이 있다면master branch
에서 분기하는 브랜치이다.
hotfix branch
에서의 변경사항은develop branch
에도 merge하여 문제가 되는 부분을 처리해야한다.
당나귀 프로젝트에서 사용할 git branch 전략이다.