git-flow는 git으로 개발할 때 표준과 같이 사용되는 방법론이고, 총 5가지의 브랜치를 사용해서 운영을 한다.
master와 develop이 중요한 메인 브랜치이고, 나머지는 필요에 의해 운영되는 브랜치이다.
master브랜치에서 시작한다. (develop 브랜치는 master에서부터 시작된 브랜치)
동일한 브랜치를 develop에도 생성한다. 브랜치에는 상시로 버그를 수정한 커밋들이 추가된다.
새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성한다.
기능 추가 작업이 완료되었다면 feature 브랜치는 develop 브랜치로 merge된다.
develop에 이번 버전에 포함되는 모든 기능이 merge 되었다면 QA를 하기 위해 develop 브랜치에서부터 release 브랜치를 생성한다.
QA를 무사히 통과했다면 release 브랜치를 master와 develop 브랜치로 merge 합니다. 마지막으로 출시된 master 브랜치에서 버전 태그를 추가합니다.
규모가 있는 개발을 할 경우 브랜치보다는 Fork와 Pull requests를 활용하여 구현한다.
Fork는 브랜치와 비슷하지만 프로젝트를 통째로 외부로 복제해서 개발하는 방식이다. 개발 후 브랜치처럼 merge를 바로 하는 것이 아니라 pull requests로 원프로젝트 관리자에게 머지 요청을 보내면 원 프로젝트 관리자가 pr된 코드를 보고 적절하다 싶으면 그때 기능을 붙이는 식으로 개발한다.