본문 바로가기

프로그래밍 언어/Git

Git-flow 브랜치 전략

개요

git-flow 브랜치 전략에 대해서 정리합니다. 

Git-flow의 브랜치 종류

  • master : 공식 릴리즈를 기록하는 브랜치
  • develop : 출시할 버전을 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치
  • release : 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에 발생한 버그를 수정하는 브랜치

Git-flow 는 항상 유지하는 메인브랜치(master, develop)와 개발 기간만 유지하고 삭제하는 브랜치(feature, release, hotfix)로 분류합니다. 

Git-flow 설명 그림

Git-flow 명령어

1. master에서 develop를 생성하고 리모트 리포지트로에 푸시

가장 처음 git 리파지토리에서 master 브랜치에서 develop 브랜치를 생성하고 푸시합니다. 

git branch develop
git push -u origin develop

2. feature 브랜치를 생성

Git-flow 에서는 새로운 기능을 feature 브랜치를 생성하여 개발합니다. 

feature 브랜치는 develop 브랜치에서 분기하여 생성합니다.

develop 브랜치에서 새로운 브랜치를 생성하여 개발하고 완료되면 develop 브랜치에 병합합니다. 

feature 브랜치 생성

git checkout develop
git checkout -b feature/new-feature-name

develop 브랜치에 병합

git checkout develop
git merge feature_branch

 

3. 릴리즈 브랜치를 생성

release 브랜치는 개발이 완료된 경우 develop 브랜치에서 분기하여 생성합니다. 

release 브랜치에서는 출시를 위한 준비 브랜치입니다. 

release 브랜치는 오직 테스트, 버그 수정, 문서작업 등의 출시 준비작업만 수행합니다. 

작업이 완료되면 develop 브랜치와 master 브랜치에 동시에 병합합니다. 

 release 브랜치 생성

git checkout develop
git checkout -b release/1.0.0

release 브랜치를 병합 후 삭제

git checkout master
git merge release/1.0.0
git checkout develop
git merge release/1.0.0
git branch -d release/1.0.0

4. hotfix 브랜치 (Optional)

hotfix 브랜치는 릴리즈에서 발생된 버그를 빠르게 패치할 경우에만 사용됩니다. 

hotfix 브랜치는 master 브랜치에서 생성합니다. 

수정이 완료되면 release 브랜치와 같이 develop 브랜치와 master 브랜치에 동시에 병합하고, hotfix 브랜치는 삭제합니다. 

hotfix 브랜치 생성

git checkout master
git checkout -b hotfix

hotfix 브랜치를 병합 후 삭제

git checkout master
git merge hotfix
git checkout develop
git merge hotfix
git branch -D hotfix