Git-Flow는 병합기반의 솔루션이며 여러 개발자가 하나의 저장소에서 협업할 때 매우 효율적인 전략이다.(기능개발 단계, 준비 및 테스트 단계, 배포 단계 등 각 단계를 효율적인 방법으로 나눈 브랜치 전략)
우리팀은 다수의 인원이 하나의 저장소에서 함께 개발하지는 않지만 Github Action(github workflow 전략)을 적용함에 있어 Git-Flow 전략대로 가져가는게 좋다 판단(단계별로 workflow 작성)하여 Git-Flow 도입을 결정하였다. 겸사겸사 탄탄한 협업 능력도 기르고~
Git-Flow 전략은 5개의 큰 줄기의 branch가 존재한다.
# git flow 설치
brew install git-flow-avh
# 해당 repository root에서
git flow init
develop
에서 시작 즉, develop 브랜치에서 checkout 해야함.feature/{Jira 티켓넘버}
(우리 팀에서는 branch 명을 {branch}/{Jira 티켓번호}
로 설정하기로 했다.)git flow feature start {Jira 티켓넘버}
# develop에 merge & 해당 branch 삭제 & develop브랜치로 자동 전환
git flow feature finish {Jira 티켓넘버}
# 그러나 우린 GUI툴인 Fork를 사용한다!
develop
내에서 기능개발 완료 시 → release/vX.X.X
로 mergerelease
브랜치로 push 되면 테스트 버전 앱 생성(server는 stage라 부르기로 하자)release
에 수정 및 pushmaster
에 mergemaster
에 merge 시 배포 자동화 로직 수행master
에서 hotfix/{Jira 티켓번호}
로 checkoutdevelop
및 master
에 merge시키기 (자동화?)