Moments of growth

브랜치 전략 중 Git Flow란? 본문

Coding [공부기록] 📚/안드로이드 기술면접 대비

브랜치 전략 중 Git Flow란?

뮤링이 2022. 6. 7. 22:52

Git Flow

git flow는 feature, develop, release, hotfix, master 5가지의 브랜치를 갖는다.
아래 사진은 git flow의 브랜치 전략을 가장 잘 드러내주는 그림이다.

 

각각의 브랜치에 대한 설명이다.

 

1. feature
feature 브랜치는 기능의 구현을 담당한다.
브랜치명은 팀마다 컨벤션을 가지고 지을 수 있지만 feature/{구현기능명}과 같은 명칭을 준수하는 것이 일반적이다.
예를 들어, feature/login은 login 기능을 구현하는 브랜치임을 알 수 있다.
feature 브랜치는 develop 브랜치에서 생성되며, develop 브랜치로 머지된다.
머지된 후에는 해당 브랜치가 삭제된다.

 

2. develop
develop 브랜치는 말 그대로 개발을 진행하는 브랜치로 중심적인 브랜치이다.
하나의 feature 브랜치가 머지될 때마다 develop 브랜치에 해당 기능이 더해지며 살을 붙여간다.
develop 브랜치는 배포할 수준의 기능을 갖추면 release 브랜치로 머지된다.

 

3. release
release 브랜치는 개발된 내용을 배포하기 위해 준비하는 브랜치이다.
브랜치명은 release-1과 같은 방식으로 첫번째 릴리즈, 두번째 릴리즈 등을 지정하는 것이 보편적이다.
release 브랜치에서 충분한 테스트를 통해 버그를 검사하고 수정해 배포할 준비가 완전히 되었다고 판단되면 master로 머지해 배포한다.
release 브랜치는 develop 브랜치에서 생성되며 버그 수정 내용을 develop 브랜치에도 반영하고, 최종적으로 master 브랜치에 머지한다.

 

4. hotfix
hotfix 브랜치는 배포된 소스에서 버그가 발생하면 생성되는 브랜치이다.
브랜치명은 hotfix-1로 지정된다. release 브랜치를 거쳐 한차례 버그 검사를 했지만 예상치 못하게 배포 후에 발견된 버그들에 대해서 수정한다. hotfix 브랜치는 master 브랜치에서 생성되며, 수정이 완료되면 develop 브랜치, release 브랜치와 master 브랜치에 수정 사항을 반영한다.

 

5. master
master 브랜치는 최종적으로 배포되는 가장 중심의 브랜치이다.
develop 브랜치에서는 개발이 진행되는 와중에도 이전 release 브랜치 내용이 master에 있어 배포되어 있다.

 

 

Git flow 브랜치 전략

단점)

여러 브랜치들이 존재하고 각 브랜치마다 상황이 명확하게 분류되어 있지만, 오히려 이렇게 많은 브랜치가 흐름을 더욱 복잡하게 만들기도 한다. 뿐만 아니라, release와 master의 구분이 모호하기도 하다.

 

장점)

프로젝트의 규모가 커지면 커질수록 소스코드를 관리하기에 용이하다.

 

 

출처)

 

git 브랜치 전략에 대해서

Git 우리는 개발을 진행하면서 우리가 구현한 소스코드를 git이라는 버전 관리 시스템을 통해 관리한다. git을 사용하지 않았더라면 협업을 진행하면서 메일이나 USB로 소스코드를 주고받아야 했

tecoble.techcourse.co.kr

 

 

[GitHub] Git 브랜치의 종류 및 사용법 (5가지) - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

 

요약하자면, 

 

feature는 기능 구현을 담당
develop은 개발 진행하는 브랜치
release는 개발된 내용을 배포하기 위해 준비하는 브랜치
hotfix는 배포된 소스에서 버그가 발생하면 생성되는 브랜치
master는 최종적으로 배포되는 브랜치

feature에서 기능 구현이 끝나면 develop으로 머지
develop에서 배포할 수준의 기능을 갖추면 release로 머지
release에서 충분한 테스트를 통해 버그를 검사하고 수정해 배포할 준비가 되었으면 master로 머지해서 배포 , (버그 수정 내용을 develop에도 반영)
hotfix는 배포 후 예상치 못하게 발견된 버그들을 수정 (master로부터 생성, 수정내용을 release, develop, master에 모두 반영)

Comments