깃브랜치 전략 중 하나로 기본적으로 5개의 브랜치를 두는 프로젝트의 버전관리 전략이다.
main(master): 출시의 기준이 되는 브랜치
develop(개발): 다음 출시를 대비하여 개발되고 있는 브랜치
features(기능): 기능별로 개발진행되는 브랜치
release(배포): 배포 하기 전 QA(품질 검사)를 하기 위한 브랜치
hotfixes(긴급 수정): main 브랜치 배포 후 버그 발생 시 긴급 수정을 위해 생성하는 브랜치

깃 플로우 전략을 사용하게 되면 개발이 진행될때의 "흐름"을 보여줄 수 있다. main 브랜치에 있는 내용으로 우선 배포가 진행이 되고, main을 기준으로 develop 브랜치가 생성이 된다. 그 후 여러 기능 개발을 하기 위해 feature 브랜치가 만들어 진다.
feature>develop>main
여러 기능들이 개발이 되고 develop 브랜치에 merge를 하면 배포 전 QA(품질 검사)를 위해 release 브랜치에서 검수가 진행되고, QA 진행 후 다시 develop > main 순으로 merge를 진행하여 배포가 진행된다.
feature>develop>release>develop>main
hotfix 브랜치는 배포가 된 후 생긴 버그등으로 긴급하게 처리되어야 할 때 main을 기준으로 생성하는 브랜치이다.
hotfix>mainordevelop
로그 기록을 통해 프로젝트가 어떻게 진행되어왔는지 파악이 가능하고, 어느 부분을 개발하여야 하는지를 알 수 있으니 유지보수성이 높아진다. 뿐만 아니라 새 기능을 개발할때 develop을 기준으로 branch가 각각 생기기 때문에 코드간의 충돌을 피할 수 있다.
https://puleugo.tistory.com/107
https://techblog.woowahan.com/2553/
velog 효율적인 협업을 위한 Git-Flow 이해하기
https://inpa.tistory.com/entry/GIT-⚡️-github-flow-git-flow-📈-브랜치-전략