Git workflow
Git Workflow는 Git을 사용하여 소프트웨어 개발을 진행할 때 효율적이고 체계적으로 협업할 수 있는 작업 방식입니다. 여러 개발자가 한 프로젝트에서 동시에 작업하면서도 충돌 없이 코드를 통합하기 위해 브랜치를 어떻게 관리할지를 정하는 전략이라고 할 수 있습니다.
Git Workflow는 팀의 개발 주기, 배포 방식, 협업 스타일에 따라 달라지며, 가장 널리 사용되는 두 가지 주요 워크플로우는 Git-flow와 GitHub-flow입니다. 이 글에서는 각각의 특징과 사용 사례를 이해하기 쉽게 설명합니다.
Git-flow
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
(1) GitHub-flow란?
GitHub-flow는 단순하고 빠른 배포를 목표로 하는 워크플로우입니다.
- 상시 배포(Continuous Deployment)를 지원하는 프로젝트에 적합합니다.
- 브랜치를 최소화하고, 배포 가능한 상태를 항상 유지합니다.
(2) branch 단계
GitHub-flow는 단순하면서도 빠른 배포를 목표로 하는 워크플로우입니다. 브랜치를 최소한으로 유지하며, main 브랜치를 중심으로 작업이 진행됩니다.
(3) 정책
- main 브랜치는 언제든지 배포 가능한 상태를 유지합니다.
- main 브랜치에 병합된 코드는 즉시 배포할 수 있어야 합니다.
- 모든 작업은 main 브랜치에서 파생된 새로운 브랜치에서 진행됩니다.
- ex. feature/user-login
- 로컬 브랜치에서 작업 후 자주 푸시(push)
- 작업 중인 로컬 브랜치를 정기적으로 원격 저장소에 푸시합니다.
- 도움이 필요하거나 병합 준비가 되면 Pull Request(PR)를 생성
- PR을 통해 팀원들과 작업 내용을 공유하고 리뷰를 받습니다.
- 코드 리뷰 후 병합
- 팀원이 변경된 코드를 승인하면 main 브랜치로 병합합니다.
- 배포 가능 상태 유지
- main 브랜치는 항상 배포 가능한 상태를 유지합니다.
(4) 언제사용하나요?
- 상시 배포 : 웹사이트나 API 서비스처럼 배포 주기가 고정되지 않고 자주 업데이트가 필요한 프로젝트
- 작은 팀이나 스타트업에서 적합
Git-flow와 GitHub-flow의 선택 기준
(1) Scott Chacon의 브랜치 전략 조언
- Git의 공동 창시자인 Scott Chacon은 아래와 같이 조언합니다.
- 장기 프로젝트 및 유지보수 팀
- 긴 개발 주기를 가지고 있고, 버전 관리가 중요하며 핫픽스가 자주 발생한다면 Git-flow가 적합합니다.
- 상시 배포 팀
- 배포 주기가 짧고 코드가 빠르게 변경되는 프로젝트에서는 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 |