[Git] Git Flow 브랜치 전략?

Git은 형상관리 도구 중 하나이며, Branch를 활용하여 파일의 변경사항을 기록 및 관리할 수 있습니다

 

그 중 오늘은 Git Flow 브랜치 전략에 대해 포스트하려 합니다.

 

Git Flow

 

Git-Flow

Git-flow에는 5가지 종류의 브랜치가 존재합니다.

 

항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.

 

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

 

위 그림의 흐름을 살펴보면,


처음에는 masterdevelop 브랜치가 존재하며, develop 브랜치는 master에서부터 시작된 브랜치입니다.

 

develop 브랜치에서는 상시로 버그를 수정한 커밋들이 추가되고, 

 

새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성하여 기능 추가 작업 완료 후 develop 브랜치로 merge 됩니다.(언제나 feature 브랜치는 develop을 통해 생성)

 

develop에 이번 버전에 포함되는 모든 기능이 merge 되었다면 검증을 위해 develop 브랜치에서부터 release 브랜치를 생성합니다.

 

검증하면서 발생한 버그들은 release 브랜치에 수정되며, 검증을 무사히 통과했다면 release 브랜치를 master와 develop 브랜치로 merge 합니다. 

 

마지막으로 출시된 master 브랜치에서 버전 태그를 추가합니다.

 

이후 master 브랜치에서 버그가 발생하면 hotfix 브랜치를 통해 수정 후, master 브랜치로 merge 합니다.

 

 

결론

관리를 하기 전보다 많은 브랜치를 관리하는 만큼 항상 flow 순서대로 흘러가지 않으며, 유동적으로 관리할 줄 알아야합니다. 

 

느낀점

Git을 활용한 브랜치 전략 중 대분류에 들어가는 전략이니 만큼 들었던 내용은 많지만 사용해본적은 없어 꼭 한 번 사용해보고 싶은 전략입니다.

 

참조

 

우아한 기술 블로그

 

우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합

techblog.woowahan.com

 

반응형