Git Flow란?
브랜치를 나누는 전략 중 하나이다.
- main: 정식 배포의 기준이 되는 브랜치이다. 언제나 배포 가능한 상태로 유지되어야 하는 브랜치이다.
- develop: 개발 중인 코드를 관리하는 브랜치이다. 새로운 기능 개발, 개발된 변화를 담은 버전 배포작업이 시작될 수 있다.
- feature: 개발할 기능을 위한 브랜치이다. 기능 개발이 완료될 시, develop으로 병합되고 feature는 제거된다.
- release: 배포를 위한 브랜치이다. 배포 전 마무리 작업, 버그 수정이 이루어진다. 완료 시 main, develop으로 병합되고 제거된다.
- hotfix: 긴급한 버그 수정을 위한 브랜치이다. master 브랜치를 기준으로 생성하게 된다.
왜 branch를 분류하나요?
협업 중 수정된 코드의 충돌을 방지하기 위해서
장점
- 안정적인 배포를 위한 구조
- 긴 개발 주기에 적합, 복잡한 기능 개발 버그 수정에 유용
단점
- 브랜치가 많아지고, 관리해야 할 작업 증가
- 작은 규모의 프로젝트에는 비효율적
참고
git-flow 도구
github Convention 정리, 모음
git flow란