Git
Git flow
차가운개발
2024. 8. 29. 07:04
git flow : 깃에서 제공하는 강력한 브랜칭 기능을 활용한 변경 이력 관리 전략이다(Branch 전략)
Branch 전략: 여러 명의 개발자가 1개의 저장소를 사용하는 환경에서 Branch를 효과적으로 사용하기 위한 개념
git flow의 branch 종류:
- master : 제품으로 출시될 수 있는 브랜치(메인)
- develop : 다음 출시 버전을 개발하는 브랜치(메인)
- feature : 기능을 개발하는 브랜치(보조)
- release : 이번 출시 버전을 준비하는 브랜치 (보조)
- hotfix : 출시 버전에서 발생한 버그를 긴급 수정하는 브랜치 (보조)
관리 순서 예시
repo를 생성(master 브랜치) ->
개발 시develop 브랜치 생성 후 해당 브랜치에서 개발 진행 ->
develop 브랜치에서 특정 기능을 개발하기 위한 브랜치 생성(feature 브랜치) ->
feature 브랜치의 개발이 끝나면 develop 브랜치로 PR한다 ->
해당 request를 확인(코드리뷰)하고 문제가 없다면 merge 한다 ->
merge 후 기능 개발에 사용한 feature 브랜치 삭제 ->
develop 브랜치의 개발이 완료되어 가면 release 브랜치 생성 후 QA ->
release 브랜치에서 발생한 버그를 해당 브랜치에서 수정한다 ->
QA를 통과하면 master와 develop 브랜치로 merge
git flow의 장점:
- 독립적인 개발환경
git flow는 기능(티켓) 단위로 독립적인 branch를 만들기 때문에 다른 개발자의 개발 결과에 영향을 받지 않는 독립적인개발환경을 만들어준다. 최소한의 방해로 개발을 할 수 있도록 도와준다. - 추적의 용이함
git flow의 feature 브랜치는 칸반 보드의 티켓과 연동되어 칸반 보드를 확인해서 어떤 기능이 통합되었는지 확인이 가능하고, 오류 발생시 문제가 발생한 부분을 쉽게 확인하고 undo 할 수 있다. - 배포 정책 및 ci/cd 연동
branch 별로 역할이 분리되어있어 각 branch에 맞춰 배포 & 테스트를 하기 용이하다.