gitflow 란? git-flow 를 사용한 브랜치 전략

GitFlow?

깃플로우(git-flow) 전략은 소프트웨어의 소스코드를 관리하고 출시하기 위한 ‘브랜치 관리 전략(branch management strategy)’중 하나이다.
git-flow 전략외에도 github flowgitlab flow 전략등도 있다. 각자에게 맞는 전략을 선택해서 사용하는게 가장 중요하다.
git-flow 는 Vicent Driessen 이 제안한 git 의 workflow 디자인에 기반한 브랜칭 모델입니다. git-flow 에서 사용하는 브랜치의 종류는 5가지이며,
크게 항상 유지되는 메인브렌치(master, develop)와 일정 기간 유지되는 보조 브랜치(feature, realease, hotfix)로 나뉩니다.

  • Master - 제품으로 출시 되는 브랜치
  • Develop - 다음 출시 버전을 개발하는 브랜치
  • Feature - 기능을 개발하는 브랜치
  • Realease - 이번 출시 버전을 준비하는 브랜치
  • Hotfix - 출시 버전에서 발생한 버그를 수정하는 브랜치

많은 그림들 중에 역시 아래의 그림이 git-flow를 한눈에 이해하기에는 가장 좋은 것 같아서 가져왔습니다.
git-flow-model

개발 흐름

위의 그림을 토대로 개발 흐름을 보자면 처음에 MasterDevelop 브랜치를 만듭니다. Develop는 Master에서 부터 시작되는 브랜치 입니다.
새로운 추가 작업이 있는 경우 Develop 에서 Feature 브랜치를 생성한다.
Feature는 언제나 Develop에서 시작해야 합니다. 기능추가 작업이 완료되면 Feature는 Develop로 Merge한다.
QA를 위해 Develop에서 Release 브랜치를 생성한다. QA를 진행 하면서 발생한 버그들은 Release에 수정된다.
QA가 끝나면 Release 브랜치를 DevelopMaster 브랜치로 각각 Merge 한다.
Hotfix 브랜치는 언제나 Master에서 시작해야 합니다. 작업이 완료되면 Hotfix는 MasterDevelop 브랜치로 각각 Merge 한다.

자세한 내용은 A successful Git branching model 여기를 참고하세요.

git 을 여러사람이 함께 사용하다보면 필연적으로 브랜치 전략을 세워서 git을 관리해야됩니다. 어떤 브랜치 전략을 사용하는지는 해당 팀의 성격에 맞게 선택하고 함께 공유하는게 중요하다고 생각합니다.

Reference

A successful Git branching model - 링크
우린 Git-flow를 사용하고 있어요 - 우아한형제들 기술 블로그 링크

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×