
하나의 저장소에 여러 개발자가 작업을 할 때, 협업의 효율을 올리기 위해 정한 git branch 규칙으로, 독립적인 개발로 서로 영향을 주지 않고 동시에 진행될 수 있다.
이를 통해 프로젝트 관리의 유연성과 능률을 향상 시키고, 버전 관리와 배포에도 안정성을 올려준다.
브랜치 종류는 다음과 같다.
master: 제품 출시 버전을 관리하는 메인 브랜치develop: 다음 출시 버전을 위해 개발하는 브랜치feature: 새로운 기능을 개발하는 브랜치release: 새로운 제품을 배포하고자 할 때 사용하는 브랜치hotfix: 출시된 제품의 버그를 고치기 위한 브랜치위 5가지 중, master 와 develop 은 항상 유지되고, feature, release, hotfix 는 merge가 되면 사라지는 보조 브랜치다.
master에서 출시 가능한 프로덕션을 관리하고, 다음 버전에 탑재 할 기능을 develop에서 개발한다.
대부분의 작업은 develop에서 merge 되며, 최종 테스트를 통해 더 이상의 수정 사항이 요구되지 않을 때 master에 적재한다.
develop은 master에 merge 되는 것을 방지 하고, 배포 전 미리 최종 테스트를 해보기 위한 branch다.
develop 에 merge 되는 신규 기능은 feature 에서 진행된다.
feature 브랜치가 모두 develop 브랜치에 merge 됐다면, QA를 위해 release 브랜치를 생성한다.
오류가 생겼다면 release 브랜치 내에서 수정한다.
QA와 테스트를 통과했다면, 배포를 위해 release 브랜치를 master 브랜치로 merge하며 동기화를 위해 develop 브랜치에도 merge를 진행한다.
master 에서 버그가 발생된다면 hotfix 브랜치를 생성하여 버그 픽스를 진행한다.
수정 후 master와 develop 브랜치에 merge하여 동기화 해준다.
Ref:
https://inpa.tistory.com/entry/GIT-⚡️-github-flow-git-flow-📈-브랜치-전략
https://hudi.blog/git-branch-strategy/