Git-flow
- Feature > Develop > Main
↑ ↗
Release ↖ ↑
Hotfix
- Feature : 기능개발
- Develop : 다음 버전 개발(Main 데뷔 전)
- Main : 출시될 예정(or 출시 됨)
- Release : Develop의 bug-fix(QA를 위함)
- Develop에서 브랜치 땀
- Develop, Main에 merged
- Main에 버전+1
- Hotfix : 출시된 애들의 bug-fix
- Main에서 브랜치 땀
- Develop, Main에 merged
- Main에 버전+1
- 버그 수정과 기능 개발을 병렬적으로 할 수 있다.
GitHub-flow
- Feature > Main
- Git-flow에서 Develop, Relaese, Hotfix, Feature를 Feature에서 한번에
- 여러 버전 관리 x, 소규모 팀에 적합
GitLab-flow
- Master > Pre-Production > Production
- Pre-Production : 스테이징 환경 같은 것
Trunk-based Development
- main 브랜치 딱 하나.
- 즉, 작업 코드를 main으로 바로 push
- 이런 상황일 때 적합
- Pair Programming(한명 코드 작성, 한명 검토)
- Mob Programming(동일한 공간, 컴퓨터에서 동일한 작업을)
- 릴리즈를 확신하는 코드를 push
- 피쳐플래그 등을 이용해서 작업이 미완료 된 코드는 숨기기
- 소규모 배치, 빠른 빌드