GitFlow란
gitflow는 과거에 git 브랜치를 관리하기 위한 전략이었던 레거시 Git workflow다.
그렇다면 workflow란 또 무엇일까?
워크플로란 작업을 수행하는 데 필요한 일련의 이벤트를 정리한 것을 말합니다. 워크플로의 각 단계는 자원의 체계적 조직화를 통해 비즈니스 프로세스를 규정하고, 작업을 '시작하기 전'부터 '완료'되기까지의 경로를 설명한다.
일종의 작업 방식을 뜻하는 말인데 그걸 Git에 접목시킨 것이 Gitflow이다.
특정한 기술이 아닌, 하나의 방법이기 때문에 모든 상황에서 Gitflow를 한다기 보다, 개발 환경에 따라 사용 할지 말지 정해진다.
그럼에도 Git Flow 는 많은 개발자들이 사용하는 방법이다.
브랜치가 많아진다는 단점도 있지만, 프로젝트에서 제품 런칭 이후에도 관리하기가 용이하고 프로젝트 전반에서 발생하는 다양한 워크플로우의 구현이 가능하다는 등 (참고자료) 확실한 장점으로 많기 때문이다.
Git Flow 는 크게는 2 종류로 나눌 수 있는 5 개의 branch 를 사용한다. Main 브랜치라고 할 수 있는 master 와 develop 브랜치, Supporting 브랜치 라고 할 수 있는 feature, release, hotfix 브랜치가 있다.
master branch : 바로 배포되어 사용 가능한 (production-ready) 상태를 유지하는 브랜치이다.
develop branch : 가장 최근의 변경사항들을 반영하는 개발 단계에서 사용하는 메인 브랜치이다.
feature branch : 기능 개발을 위해 develop 브랜치에서 갈라져나온 브랜치로, 기능 구현이 완료되면 다시 develop 브랜치로 병합된다.
release branch : 배포를 위해 최종적인 검증 단계를 거치는 브랜치로, develop 또는 master 브랜치로 병합된다.
hotfix branch : 배포 중인 master branch 에서 빠르게 수정해야 하는 버그가 발생했을 경우, 개발 단계에 있는 develop branch 대신 바로 master branch 에서 분기해 수정사항을 반영하는 브랜치입니다. master 또는 develop 브랜치로 병합된다.