GitFlow 전략
-
주요 Branch는 총 4개다.
-
Main / Dev / Release / Hotfix
-
Main에서 Dev를 생성한다.
-
이 후 Dev에 대해서
Feature Branch를 생성해서 작업한다.
- 그러면 다음과 같은 구조가 된다.
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 : Main
-
이제 이 상황에서 Release를 할 시점이 오면
Dev를 기준으로 Release Branch를 생성한다.
Level 2 : Dev -- Feature/login Release
: -- Feature/logout
Level 1 : Main
Case 1. Release Branch를 생성 후 추가적인 작업이 진행 될 경우
- Release를 기준으로 Branch를 생성해서 작업을 한다.
Level 3 : Release -- Feature/FindPW
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 : Main
-
그리고 Release에 대한 작업이 끝나면
Main에 Merge를 하여 배포한다.
Level 4 : Main <- - - - - - - - - - - - - -┓
Level 3 : Release -- Feature/FindPW
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 :
-
그리고 Main에 내용을
다시 Dev에 Merge를 하여
Main과 Dev의 Sync를 맞춘다.
Level 4 : Main Dev
Level 3 :
Level 2 :
Level 1 :
Case 2. Release Branch를 생성 후 추가적인 작업이 없을 경우
-
추가 작업이 없는 경우엔
Release Branch를
바로 Main Branch에
Merge 하여 배포한다.
Level 3 : Main <- - - - - - - - - - - - - -┓
Level 2 : Dev -- Feature/login Release
: -- Feature/logout
Level 1 :
-
그리고 Main에 내용을
다시 Dev에 Merge를 하여
Main과 Dev의 Sync를 맞춘다.
Level 3 : Main Dev
Level 2 :
Level 1 :
Hotfix Branch
- 긴급하게 Hotfix가 발생할 경우
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 : Main
- Main을 기준으로 Hotfix Branch를 생성한다.
Level 2 : Dev -- Feature/login
: -- Feature/logout
Level 1 : Hotfix Main
- 그리고 Hotfix에 작업을 진행하고
Level 2 : Hotfix -- Feature/FindPW Dev -- Feature/login
: -- Feature/logout
Level 1 : Main
-
Hotfix에 대한 작업이 끝나면
Main에 Merge를 한 후
Level 3 : ┎- - - - - - - - - - - - -> Main
Level 2 : Hotfix -- Feature/FindPW Dev -- Feature/login
: -- Feature/logout
Level 1 :
-
Main를 배포한다.
-
그리고 Main에 추가된 내용을
다시 Dev에 Merge를 하여
Main과 Dev의 Sync를 맞춘다.
Level 3 : Main Dev
Level 2 :
Level 1 :
-
Main를 Dev에 Merge 하지 않고
Dev에서 Feature Branch 생성하게 되면
가장 최신의 코드가 아닌 상태로 개발이 진행된다.
-
그리고 기존에 있던
Feature/login, Feature/logout 작업은
완료되면 Dev에 Merge시킨다.
-
이후 신규 개발은
Dev를 Base로 Feature Branch를 생성하여 작업한다.
Level 4 : Dev -- Feature/payment
: -- Feature/refund
Level 3 : Main
Level 2 :
Level 1 :