Git Flow는 Git으로 형상관리를 할때 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 관리 전략(Branch management strategy)입니다.
우선순위에 따라 나열된 작업 중, 우선순위가 높은 작업부터 선택하여 작업을 진행할 수 있고, 이번 버전에 포함될 필수 작업과 함께 다음에 언젠가는 배포될 작업들을 병렬로 진행할 수 있습니다. 처리하던 작업들이 완료가 되면 가까운 배포주기에 포함시켜 출시할 수 있습니다. 이러한 개발 프로세스를 가장 잘 반영할 수 있는 모델이 Git-Flow 이기 때문입니다. 브랜치 전략은 PR 기반으로 feature → develop → main의 개발 프로세스를 수립하였습니다.
Github-Flow는 develop branch 없이 바로 main에 merge 되기에 충분한 테스트를 거치더라도 장애가 발생할 수 있는 가능성이 존재했습니다. Gitlab-Flow는 빠른 개발 프로세스를 가지고 갈 수 있지만 여러명이 함께 개발하는 기능 같은 경우 취합하기 어려울 것이라는 판단을 했습니다. Git-Flow는 대규모 프로젝트 관리에 적합한 방식이며 우선순위로 개발해야 할 기능과 언젠가 배포될 작업들을 하나의 배포주기에 포함시켜 출시할 수 있는 브랜치 전략이기에 Git-Flow를 채택했습니다.
가장 최초로 제안된 Workflow 방식이며, 대규모 프로젝트 관리에 적합한 방식으로 평가받는다.
github flow의 간단한 배포 이슈를 보완하기 위해 관련 내용을 추가로 덧붙인 flow 방식
git-flow를 개선하기 위해 나온 하나의 방식
https://nvie.com/posts/a-successful-git-branching-model/
main branch
develop branch
supporting branch