Stack/Git

[Git] Git workflow 브랜치 전략

annovation 2025. 1. 24. 08:50

Git workflow

Git Workflow는 Git을 사용하여 소프트웨어 개발을 진행할 때 효율적이고 체계적으로 협업할 수 있는 작업 방식입니다. 여러 개발자가 한 프로젝트에서 동시에 작업하면서도 충돌 없이 코드를 통합하기 위해 브랜치를 어떻게 관리할지를 정하는 전략이라고 할 수 있습니다.

Git Workflow는 팀의 개발 주기, 배포 방식, 협업 스타일에 따라 달라지며, 가장 널리 사용되는 두 가지 주요 워크플로우는 Git-flow GitHub-flow입니다. 이 글에서는 각각의 특징과 사용 사례를 이해하기 쉽게 설명합니다.


Git-flow

Git-flow 출처 : https://medium.com/@yanminthwin/understanding-github-flow-and-git-flow-957bc6e12220

1. Git-flow 란?

Git-flow 브랜치를 5단계로 나누어 체계적으로 관리하는 워크플로우입니다.

  • 주로 버전 관리가 필요한 정기 배포 프로젝트(ex. 앱이나 소프트웨어 제품)에 적합합니다.
  • 브랜치를 목적에 따라 세분화하여 작업을 분리하고, 배포 준비 상태를 명확히 합니다.

2. branch 5단계 : feature-develop-release-hotfix-main

브랜치 이름 설명
main 항상 배포 가능한 최종 코드가 저장됩니다.
develop 다음 배포를 준비하는 코드가 저장됩니다.
feature 새로운 기능 개발을 위한 브랜치입니다.
release 배포를 준비하는 단계에서 코드 안정화를 위한 브랜치입니다.
hotfix 배포 후 긴급하게 발생한 버그를 수정하는 브랜치입니다.

 

3. 언제 사용하나요?

  • 버저닝(versioning) : 버전 번호(예: 1.0, 2.0)를 관리해야 하는 프로젝트
  • 정기 배포 : 배포 일정이 미리 정해져 있는 앱이나 소프트웨어 개발

GitHub-flow 

GitHub-flow 출처 : https://medium.com/@yanminthwin/understanding-github-flow-and-git-flow-957bc6e12220

 

(1) GitHub-flow란?

GitHub-flow는 단순하고 빠른 배포를 목표로 하는 워크플로우입니다.

  • 상시 배포(Continuous Deployment)를 지원하는 프로젝트에 적합합니다.
  • 브랜치를 최소화하고, 배포 가능한 상태를 항상 유지합니다.

(2) branch 단계

GitHub-flow는 단순하면서도 빠른 배포를 목표로 하는 워크플로우입니다. 브랜치를 최소한으로 유지하며, main 브랜치를 중심으로 작업이 진행됩니다. 

 

(3) 정책

  1. main 브랜치는 언제든지 배포 가능한 상태를 유지합니다.
    • main 브랜치에 병합된 코드는 즉시 배포할 수 있어야 합니다.
  2. 모든 작업은 main 브랜치에서 파생된 새로운 브랜치에서 진행됩니다.
    • ex. feature/user-login
  3. 로컬 브랜치에서 작업 후 자주 푸시(push)
    • 작업 중인 로컬 브랜치를 정기적으로 원격 저장소에 푸시합니다.
  4. 도움이 필요하거나 병합 준비가 되면 Pull Request(PR)를 생성
    • PR을 통해 팀원들과 작업 내용을 공유하고 리뷰를 받습니다.
  5. 코드 리뷰 후 병합
    • 팀원이 변경된 코드를 승인하면 main 브랜치로 병합합니다.
  6. 배포 가능 상태 유지
    • main 브랜치는 항상 배포 가능한 상태를 유지합니다.

 

(4) 언제사용하나요?

  • 상시 배포 : 웹사이트나 API 서비스처럼 배포 주기가 고정되지 않고 자주 업데이트가 필요한 프로젝트
  • 작은 팀이나 스타트업에서 적합

Git-flow와 GitHub-flow의 선택 기준

(1) Scott Chacon의 브랜치 전략 조언

  • Git의 공동 창시자인 Scott Chacon은 아래와 같이 조언합니다.
  1. 장기 프로젝트 및 유지보수 팀
    • 긴 개발 주기를 가지고 있고, 버전 관리가 중요하며 핫픽스가 자주 발생한다면 Git-flow가 적합합니다.
  2. 상시 배포 팀
    • 배포 주기가 짧고 코드가 빠르게 변경되는 프로젝트에서는 GitHub-flow를 사용하는 것이 효율적입니다.

(2) Atlassian Bitbucket 팀의 조언

  • Git-flow와 GitHub-flow는 프로젝트의 성격과 팀의 요구 사항에 따라 다르게 선택해야 합니다.
    • 정기 배포와 버전 관리는 Git-flow
    • 빠른 업데이트와 간결한 프로세스는 GitHub-flow

참고하면 좋은 사이트

1. 상황에 맞는 브랜치 전략 : https://blog.hwahae.co.kr/all/tech/9507

 

Git 브랜치 전략 수립을 위한 전문가의 조언들 – 화해 블로그 | 기술 블로그

Git 브랜치 전략 효과적으로 VCS를 사용하려면 프로젝트 여건에 어울리는 브랜치 전략을 세워야 합니다. 이를 위한 첫 번째는 바로 브랜치 전략에 대한 비교 분석입니다. Git기반으로 워크플로우

blog.hwahae.co.kr

 

2. Git Flow : https://blog.hwahae.co.kr/all/tech/14184

 

생산성 향상을 위한 새로운 브랜치 전략 도입, byebye Git-flow – 화해 블로그 | 기술 블로그

화해 백엔드 플랫폼에서 정기배포 브랜치 전략을 변경하게 된 배경부터, 그 과정 속에서 겪은 의사결정 사안까지 상세 소개합니다.

blog.hwahae.co.kr


출처

1. OpenAI ChatGPT (https://openai.com)

2. 2024 프로그래머스 백엔드 데브코스 3기 4회차 수업

3. Git-flow & GitHub-flow 출처

https://medium.com/@yanminthwin/understanding-github-flow-and-git-flow-957bc6e12220

 

Understanding GitHub Flow and Git Flow

When it comes to version control workflows, GitHub Flow and Git Flow are two popular methodologies that developers often consider. Both…

medium.com

반응형

'Stack > Git' 카테고리의 다른 글

[GitHub] PR template  (0) 2025.01.26
[Git] Commit Message  (0) 2025.01.25
GitHub  (1) 2025.01.21
[Git 명령어] reset VS revert  (0) 2025.01.20
Let's Git it!  (0) 2025.01.19