개요[편집 / 원본 편집]

Git Flow는 Vincent Driessen이 제안한 Git 브랜칭 모델로, 소프트웨어 개발 프로젝트에서 효과적인 버전 관리를 위해 널리 사용된다. Git Flow는 명확한 브랜치 구조를 제공하여 협업 개발 과정에서 혼란을 줄이고, 다양한 작업 흐름을 체계적으로 관리할 수 있도록 돕는다. Git Flow는 기본적으로 두 가지 주요 브랜치(master와 develop)와 여러 가지 지원 브랜치(feature, release, hotfix)를 사용한다. 각 브랜치는 특정한 목적과 역할을 가지며, 이를 통해 프로젝트의 일관성과 안정성을 유지한다.

특징[편집 / 원본 편집]

  • 주요 브랜치
    • main[1]: 항상 배포 가능한 상태를 유지하는 브랜치로, 제품의 공식 릴리스를 관리
    • develop: 다음 릴리스를 위해 개발 중인 최신 코드를 관리하는 브랜치
  • 지원 브랜치
    • feature: 새로운 기능을 개발하는 브랜치로, develop 브랜치에서 분기
    • release: 릴리스를 준비하는 브랜치로, develop 브랜치에서 분기되어 최종적인 버그 수정 및 릴리스 준비를 진행
    • hotfix: 긴급한 버그 수정을 위한 브랜치로, main 브랜치에서 분기

장점[편집 / 원본 편집]

  • 명확한 브랜치 구조: 각 브랜치가 명확한 역할을 가지고 있어 코드 관리가 쉽다.
  • 병행 개발 지원: 여러 개발자가 동시에 다양한 기능을 개발하고, 이를 쉽게 통합할 수 있다.
  • 안정성 유지: master 브랜치는 항상 배포 가능한 상태를 유지하므로, 배포 시 발생할 수 있는 문제를 줄인다.

단점[편집 / 원본 편집]

  • 복잡성 증가: 많은 브랜치를 관리해야 하므로, 작은 프로젝트에서는 불필요하게 복잡해질 수 있다.
  • 학습 곡선: Git Flow를 처음 접하는 개발자는 초기 학습에 시간이 필요할 수 있다.

사용처[편집 / 원본 편집]

Git Flow는 주로 다음과 같은 상황에서 유용하다

  • 대규모 프로젝트: 많은 기능이 동시에 개발되고, 각 기능이 명확히 분리되어야 할 때.
  • 협업 개발: 여러 개발자가 함께 작업하는 프로젝트에서 코드 통합과 릴리스 관리를 체계적으로 할 때.
  • 정기적인 릴리스: 주기적인 릴리스 주기를 가지는 프로젝트에서 각 릴리스 준비를 체계적으로 관리할 때.

기타[편집 / 원본 편집]

Git Flow를 사용하려면 git-flow 확장 도구를 설치하는 것이 좋다. 다음은 git-flow 설치 및 기본 명령어 사용 예시이다.

# git-flow 설치
$ brew install git-flow

# git-flow 초기화
$ git flow init

# 새로운 기능 브랜치 시작
$ git flow feature start new-feature

# 기능 개발 완료 후 develop 브랜치로 병합
$ git flow feature finish new-feature

# 릴리스 브랜치 시작
$ git flow release start 1.0.0

# 릴리스 준비 완료 후 master 및 develop 브랜치로 병합
$ git flow release finish 1.0.0

# 핫픽스 브랜치 시작
$ git flow hotfix start fix-bug

# 핫픽스 완료 후 master 및 develop 브랜치로 병합
$ git flow hotfix finish fix-bug

각주[편집 / 원본 편집]

  1. 깃허브 기준. 다른 Git 서비스에서는 'master'
• 현재 페이지 URL 줄이기