Git 브랜치 전략 (Git flow , GitHub flow)

SmileJun·2025년 8월 12일

GitHub

목록 보기
2/2

Branch 전략이란?

  • 여러 명의 개발자가 하나의 저장소를 사용하는 환경에서 협업을 효과적으로 사용을 하기 위해 나온 개념
  • git bracnh에 대한 규칙을 정하고 저장소를 잘 활용하기 위한 workflow를 정의하는 것

장점

  • 협업을 진행할 때 독립적으로 각 기능에 대해 작업하면서 변경사항을 변경하고, 브랜치가 merge될 때 오류가 발생하면 바로 해결할 수 있다.

  • Master 버전 관리를 할 때 여러 기능별 브랜치들을 네이밍을 통해 쉽게 구분할 수 있다.

  • 오류나 버그가 발생할 때 어떤 브랜치에서 롤백해야될지 빠르고 명확하게 확인할 수 있다.

종류

  • GitHub flow
  • Git flow
  • GitLab flow

GitHub flow

  • GitHub에서 만든 단순한 구조의 브랜치 전략
  • Master 브랜치를 중심으로 운영되며, 기능 개발 버그 수정 등의 작업용 브랜치를 구분하지 않는 단순한 구조
  • 하나의 master + master에 기능을 추가하기 위한 feature 브랜치 두개만으로 운영하여 간단하면서 빠르게 수정 배포할 수 있는 전략

GitHub flow의 전체적인 흐름

1. 브랜치 생성

  • Master로부터 기능추가, 버그 수정 작업을 위한 새로운 브랜치를 생성한다.
  • 작업별로 브랜치 구분하지 않기 때문에 commit 메세지와 브랜치 이름은 정확하고 간결하게 작성

2. 기능 개발, 버그 수정

  • 작업을 하며 기능별로 commit
  • commit은 서버의 동일한 브랜치에 push 해줘야 한다.

3. Pull Request 생성

  • 기능 또는 오류 수정이 완료되었으면 Master 브랜치에 PR를 요청한다.

4. 리뷰와 논의

  • PR을 통해 팀원과 작성한 코드에 대한 리뷰와 논의

5. 공개 및 테스트

  • Github에서는 Master에 merge하기 전에 브랜치에서 코드를 공개 및 테스트 할 수 있다.
  • 오류가 발생할 경우 원래의 master 브랜치를 다시 배포하여 roll back 한다.

6. 최종 Merge

  • 리뷰와 피드백이 모두 반영되면 feature 브랜치를 master 브랜치로 merge한다.

Git flow

항상 유지되는 메인브랜치(Master,Develop)와 일정 기간 동안만 유지되는 보조 브랜치(Feature, Release, Hotfix) 총 5가지 브랜치
  • Master Branch : 현재 배포할 수 있는 코드들이 위치한 브랜치, 즉 제품으로 출시될 수 있는 브랜치
  • Develop Branch : 다음 출시 버전을 개발하기 위해 사용하는 브랜치
  • Feature Branch : 하나의 새로운 기능을 개발하는 브랜치
  • Release Branch : QA(품질보증 및 버전관리)를 진행하는 브랜치
  • Hotfix Brach : Master에서 발생한 오류나 버그를 수정하는 브랜치

Git flow의 전체적인 흐름

  1. 초기에 Master, Develop 브랜치가 존재한다.
  2. 새로운 기능을 추가하려면 Develop 브랜치에서 Feature 브랜치를 생성하여 개발을 진행한다.
  3. Feature 브랜치에서 기능 추가 작업을 완료하면 Develop 브랜치로 merge한 후 브랜치가 삭제된다.
  4. Develop 브랜치에서 새로운 버전에 대한 개발이 완료되면 Master 브랜치로 merge하게 되는데, 그 전에 QA 테스트를 진행하기 위해서 Develop 브랜치에서 Release 브랜치를 생성한다.
  5. QA 테스트를 진행하면서 오류나 버그가 발생하면 Release 브랜치에서 수정하고 모두 완료되면 Develop과 Master 브랜치에 merge한다.
  6. 출시된 Master 브랜치에서 예상치 못한 버그나 오류가 발생하면 Master 브랜치에서 Hotfix 브랜치를 생성하고 코드를 수정 후 Maste와 Develop 브랜치에 merge한다.

GitHub flow vs Git flow

  • GitFlow 전략은 더 많은 제어와 복잡성을 가지고 있어 특정 기능이나 수정을 빠르게 배포해야 할 경우에는 불리할 수 있다. 하지만 그만큼 배포 안정성과 버전 관리 및 롤백 등 체계적인 운영이 가능하다.

  • 반면에, GitHub Flow 전략은 테스트와 검증 절차를 거치지 않고 바로 master 브랜치로 Merge 되므로 높은 위험성을 가지고 있다. 하지만 그만큼 단순하고 빠르게 기능을 테스트하고 배포할 수 있기 때문에, 주로 각 환경의 구분이 명확하지 않고 작은 규모의 프로젝트에 적합하다.

profile
하루하루는 성실하게, 인생 전체는 되는대로

0개의 댓글