안녕하세요.
1. Git flow
git flow는 최초의 제안된 flow이며 다른 flow보다 엄격합니다.
feature > develop > release > hotfix > master 브랜치가 존재합니다.
- master : 최종 단계의 브랜치입니다.
- develop : 다음 release 버전의 개발을 진행하는 브랜치입니다.
- release : develop 브랜치에서 파생되며 테스트 시 이상이 없으면 master 브랜치와 병합합니다.
- feature : 기능 단위 구현 개발을 위한 브랜치입니다.
- hotfix : master 브랜치에서 버그 발생 시 사용하는 브랜치입니다.
2. Github flow
Git flow가 복잡하기 때문에 자동화가 포함된 단순한 flow 입니다.
master 브랜치는 항상 최신의 stable 상태를 유지하며 product에 배포됩니다. 기능 개발이나 버그 수정은 브랜치를 만들고 개발이 완료되면 PR (pull request)를 통해 master에 merge 합니다. master로 merge 되었을 때 자동으로 배포됩니다.
3. Gitlab flow
Github flow가 너무 단순해서 production이라는 브랜치를 하나 더 두고 배포를 원할 때 master 브랜치를 production 브랜치에 merge 하는 방식입니다.
git flow는 어떤 방식이 더 나은 방식이라고 하기가 어렵습니다. 개발자가 몇 명인지, 환경은 어떻게 되는지, 릴리즈 방식은 어떻게 하는지에 따라 달라집니다.