Frontend/기타

간단하게 정리하는 GitFlow

제주도랏맨 2022. 7. 1. 23:47

 

 

 

깃허브를 사용하면서 기능별로 feature 브랜치를 파고 PR을 올리고 머지한 적은 있지만,

브랜치 명칭별로 어떤 역할을 하는지, 어떻게 관리되어야하는지에 대해서는 깊게 생각해본 적이 없었다.

오늘 인턴쉽을 진행하며 배웠던 깃 플로우 전략을 아주아주 간단하게 정리해두려고 한다.

 

브랜치의 종류는 5가지가 있다.

 

develop 개발이 진행 중인 branch
feature 특정 기능의 개발이 진행되는 branch
release 기능 개발이 끝나고, 제품 출시 전
테스팅용 DB와 서버에서 빌드되어 QA 과정에 놓이는 branch
master 빌드 되어 실제 배포되는 branch
hotfix 배포된 결과물에서 발생한 문제를 빠르게 해결하기 위한 branch

 

실제 개발과정에서는 위 브랜치를 다음과 같이 적용한다.

 

 

develop 브랜치에서 특정 기능을 개발하고자 할 때는 feature 브랜치를 생성해 개발한다.

개발이 완료된다면 feature 브랜치를 develop에 merge한다.

 

develop 브랜치에서 매 싸이클마다 개발 완료 후 코드 테스트된 코드에 대해서 release 브랜치로 merge한다.

release 브랜치에서는 테스팅 DB와 테스팅 서버를 통해 QA를 진행한다.

QA가 완료된 브랜치는 master 브랜치로 merge되어 빌드 및 배포된다.

이를 통해 개발된 기능이 실제 소비자에게 제공된다.

 

배포까지 완료 된 master branch에서 버그 발견 시,

hotfix 브랜치를 생성하여 버그를 픽스하고 이를 master, release, develop 브랜치에 merge한다.

 

develop, release, master 브랜치는 merge 당하기만 하는 branch로 만들어 

버그 발견 시 추척을 쉽게 한다. (Git History 관리)