
대표적인 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 전략이다.