브랜치 전략
여러 개발자가 협업하는 환경에서 git 저장소를 효과적으로 활용하기 위한 work-flow
브랜치의 생성,삭제,병합이 자유로운 git의 유연한 구조 활용해서
소스관리를 할 수 있다
브랜치 전략이 없으면
- 동료 개발자가 만든 브랜치나 커밋에 대해 알기 어려움
자주 쓰이는 브랜치 전략
git- flow
항상 유지되는 2개의 메인 브랜치와
역할이 완료되면 사라지는 3개의 보조브랜치로 구성
- 메인 브랜치 : 항상 유지됨
😎 master : 제품으로 출시될 수 있는 브랜치
👀 develop : 다음 출시 버전을 개발하는 브랜치
- 보조 브랜치 : merge되면 사라짐
🤳 feature : 기능을 개발하는 브런치
🎂 release : 이번 출시 버전을 준비하는 브랜치
✔ hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치
git flow 개발 프로세스
- 개발자는 develop 브랜치로 부터 개발할 기능을 위한 feature 브랜치를 만듬
- feature 브랜치에서 기능을 만들다가, 기능이 완성되면 develop 브랜치에 merge한다.
- 이번 배포 버전 기능이 develop 브랜치에 모두 merge 되면, QA를 위해 release 브랜치 생성
- release 브랜치에서 오류 발생하면 release 브랜치 내에서 수정하고
QA 끝났으면 배포하기위해 master로 merge.
bugfix가 있었으면 반영하기위해 develop 브랜치에도 merge
- 만약 master에서 버그가 발생하면 hotfix 브랜치를 만든다.
- hotfix브랜치에서 버그 픽스 끝나면, develop과 master브랜치에 각각 merge
git-flow 특징
- 주기적으로 배포하는 서비스 적합
- 가장 유명한 전략이기때문에 IDE가 지원
github-flow
- 기능 개발 버그픽스 혹은 어떤 이유로든 branch 생성
gitflow 처럼 체계적인 분류는 없어서 이름은 의도를 잘 드러내도록 작성
- 개발하고 커밋메시지 상세하게 작성
- 완료되면 Pull Request 생성
- 리뷰와 토의
- 리뷰가 끝나면 실제 서버에 배포
- 문제 없으면 master에 merge 하고 push 즉시 배포 (배포 자동화 권장)
github-flow 특징
- 단순하여 git 처음 적하는 사람에게도 유용
- CI 지속적 통합 CD 지속적 배포 가 자연스럽게 이루어짐