Gidhub BE Developer

GitFlow 전략 쉽게 이해하기 (with Example)

2019-11-17
goodGid

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 : 

Index