본문 바로가기
Git

Git-flow란?

by 박주봉 2021. 6. 28.

Git Flow의 개념

Git Flow는 Git으로 형상관리를 할때 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 관리 전략(Branch management strategy)입니다.

 

Git Flow사용 이유

그렇다면 이러한 브랜치들을 굳이 전략까지 세워서 관리를 해야될까?
프로젝트 규모가 작거나 혼자서 개발을 할 경우 branch? 아니 master에서 그냥 작업해서 배포해도 상관없을 것입니다.
하지만 프로젝트의 규모가 커져서 팀원이 늘어났을 경우 누군가는 하루 종일 conflict를 해결해야 하며, 이슈가 발생했을 때 개발한 코드를 다시 되돌리고 이러한 과정에서 개발을 멈춰야 되는 불편함이 있습니다.
물론 회사마다 프로젝트를 효율적으로 관리를 하는 방법이 있겠지만, 위와 같은 과정들을 최소화하고 형상관리를 효율적으로 하기 위해 생겨난 전략이라고 생각하면 될 것같습니다.

 

Git Flow살펴보기

Git branch의 종류는 아래 다섯가지가 존재합니다.

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

Git flow를 검색해보면 대부분 블로그에 아래 이미지들이 포함되어 있습니다.

그림을 이해하기 위해 예시를 들어보겠습니다.

A는 게시판에 필터기능을 추가하고, B는 게시글에 댓글기능을 추가해야한다.

  1. develop 브랜치에서 A와 B가 각각 feature 브랜치를 생성한다.
  2. 개발이 완료되면 그동안 commit된 내용을 local branch에서 feature 브랜치로 pull 또는 pull request한다.
  3. feature 브랜치에서 develop 브랜치로 merge 요청한다.
  4. relase 브랜치에서 QA를 진행하기 위해 merge를 진행한다.
  5. QA 테스트가 통과되었다면 master, develop에 merge를 진행한다.

운영서버에서 버그가 발생했다.

  1. master브랜치에서 바로 hotfix 브랜치를 생성한다.
  2. 버그를 열심히 수정하고 master 브랜치에 merge를 진행하고 추가적으로 버그가 발생하지 않도록 develop에도 merge를 진행한다.

 

Reference

 

 

댓글