Git Flow는 소프트웨어 개발 프로세스를 위한 구조화된 Git 브랜치 전략 중 하나입니다. 이 전략은 Vincent Driessen에 의해 제안되었으며, 주로 중소 규모에서 대규모의 프로젝트에서 사용됩니다. Git Flow는 다섯 가지 주요 브랜치와 그에 따른 머지 전략을 제공합니다.
주요 브랜치:
제품 출시 버전의 코드를 관리하는 메인 브랜치입니다.
항상 배포 가능한 안정적인 코드를 유지해야 합니다.
다음 출시를 위한 개발이 진행되는 브랜치입니다.
새로운 기능 개발이나 버그 수정 등이 이루어집니다.
새로운 기능을 개발하기 위한 브랜치입니다.
각 기능은 별도의 Feature 브랜치에서 개발되며, 완료 시 Develop 브랜치로 병합됩니다.
다음 출시를 준비하는 브랜치입니다.
QA를 진행하고 버그를 수정하는 등의 작업을 수행합니다.
마지막 준비가 완료되면 Master와 Develop 브랜치로 병합되며, 새로운 버전이 출시됩니다.
제품 출시 버전에서 발생한 긴급한 버그를 수정하기 위한 브랜치입니다.
Master 브랜치에서 따와서 수정한 후 Master와 Develop 브랜치로 병합합니다.
출처: 우아한형제들 기술블로그
머지 전략:
Feature 브랜치에서 개발이 완료되면 Develop 브랜치로 병합합니다.
Release 브랜치에서 QA 및 마지막 준비가 완료되면 Master와 Develop 브랜치로 병합합니다.
Hotfix 브랜치에서 긴급한 버그를 수정한 후, Master와 Develop 브랜치로 병합합니다.
Git Flow는 프로젝트를 높은 수준으로 구조화하여 출시 주기를 관리하고, 기능 개발과 유지보수를 분리하여 효율적으로 진행할 수 있도록 도와주는 전략입니다.