✏️ [ Git ] - Gitflow

정은·2024년 2월 14일

✏️ Gitflow 란?

Gitflow 는 Git 기반 버전 관리 시스템에서 널리 사용되는 브랜치 모델 중 하나입니다. 이 모델은 프로젝트에서 브랜치와 릴리스를 잘 정리하고 관리하는 방법을 제공합니다.

✏️ Gitflow 사용법

단일 주요 브랜치 대신, 프로젝트의 이력을 기록하기 위해 두 개의 브랜치를 사용합니다. main 브랜치 는 공식 릴리스 이력을 저장하고, develop 브랜치 는 기능의 통합 브랜치로 사용됩니다.

💡 main 브랜치 의 모든 커밋에 버전 번호를 태깅하는 것이 편리합니다.

1. main & develop 브랜치

  • 첫 번째 단계는 기본 'main' 브랜치를 'develop' 브랜치로 보완하는 것입니다. 한 명의 개발자가 로컬에서 빈 'develop' 브랜치를 생성하고 서버에 푸시합니다.
git branch develop
git push -u origin develop

2. feature (기능) 브랜치

  • 새로운 feature은 각자의 브랜치에서 작업합니다.
  • feature 브랜치는 develop에서 생성하고, 작업 후에는 develop으로 병합합니다.
  • feature은 main과 직접적으로 연결되지 않습니다.

💡 일반적으로 feature 브랜치는 최신 develop 브랜치에서 생성됩니다.

📌 기능 브랜치 생성하기:

 # develop 브랜치로 전환 
 git checkout develop
 
 # 새로운 기능 브랜치를 생성 
 git checkout -b [브랜치명]

📌 기능 브랜치 완료하기:

  • 작업이 완료되면, feature_branch를 develop 브랜치로 병합합니다.
# develop 브랜치로 전환
git checkout develop

# 기능 브랜치를 develop 브랜치로 병합
git merge feature_branch

3. release 브랜치

  • 개발 브랜치인 develop에 충분한 기능이 모이거나 정해진 릴리스 날짜가 다가올 때, develop에서 릴리스 브랜치를 생성합니다.
  • 이 브랜치는 새로운 기능을 추가하지 않고, 버그 수정과 릴리스 관련 작업만 진행합니다.
  • 릴리스가 완료되면 릴리스 브랜치를 main에 병합하고 버전 번호를 태깅합니다.
  • 릴리스 브랜치는 릴리스가 시작된 후 develop에도 병합되어야 합니다.

💡 이를 통해 한 팀은 현재 릴리스를 정리하고 다른 팀은 다음 릴리스의 기능을 개발할 수 있어 개발 단계가 명확해집니다.

📌 release 브랜치 생성하기:

# develop 브랜치로 이동
git checkout develop

# 새로운 릴리스 브랜치를 생성
git checkout -b release/0.1.0

4. hotfix 브랜치

  • 유지보수 또는 "핫픽스" 브랜치는 빠르게 생산 릴리스를 수정하는 데 사용됩니다.
  • 핫픽스 브랜치는 main에서 직접 분기되며, 수정이 완료되면 즉시 main과 develop(또는 현재 릴리스 브랜치)로 병합되어야 합니다.

📌 핫픽스 브랜치 생성하기:

# main 브랜치로 이동 
git checkout main

# 새로운 핫픽스 브랜치 생성
git checkout -b hotfix_branch

📌 핫픽스 브랜치 main과 develop으로 병합하기:

git checkout main
git merge hotfix_branch

git checkout develop
git merge hotfix_branch

✏️ Gitflow 작업 방법

💡 main 브랜치가 있는 저장소가 설정되어 있다고 가정

📌 Gitflow 작업 방법 한 눈에 보기:

# main 브랜치로 이동
git checkout main
# develop 브랜치 생성
git checkout -b develop
# feature_branch 생성
git checkout -b [브랜치명]

- 기능 브랜치에서 작업 진행 -

# 기능 브랜치에서 작업이 완료되면
git checkout develop
# 기능 브랜치를 develop 브랜치에 병합
git merge [브랜치명]
# main 브랜치로 이동
git checkout main
# develop 브랜치를 main 브랜치에 병합
git merge develop
# 기능 브랜치 삭제
git branch -d [브랜치명]

📍<참고> Atalassian Gitflow Workflow

0개의 댓글