깃플로우(git-flow) 전략은 소프트웨어의 소스코드를 관리하고 출시하기 위한 '브랜치 관리 전략(branch management strategy)'중 하나이다. git-flow 전략외에도 github flow 와 gitlab flow 전략등도 있다. 각자에게 맞는 전략을 선택해서 사용하는게 가장 중요하다. git-flow 는 Vicent Driessen 이 제안한 git 의 workflow 디자인에 기반한 브랜칭 모델이다. git-flow 에서 사용하는 브랜치의 종류는 5가지이며, 크게 항상 유지되는 메인브렌치(master, develop)와 일정 기간 유지되는 보조 브랜치(feature, realease, hotfix)로 나뉜다.
Master - 제품으로 출시 되는 브랜치
Develop - 다음 출시 버전을 개발하는 브랜치
Feature - 기능을 개발하는 브랜치
Realease - 이번 출시 버전을 준비하는 브랜치
Hotfix - 출시 버전에서 발생한 버그를 수정하는 브랜치
많은 그림들 중에 역시 아래의 그림이 git-flow를 한눈에 이해하기에는 가장 좋은 것 같아서 가져왔다.
개발 흐름
위의 그림을 토대로 개발 흐름을 보자면 처음에 Master 와 Develop 브랜치를 만드는데, Develop는 Master에서 부터 시작되는 브랜치입니다. 위 두 브랜치는 항상 존재하는 브랜치 입니다. 새로운 추가 작업이 있는 경우 Develop 에서 Feature 브랜치를 생성한다. Feature는 언제나 Develop에서 시작해야 합니다. 기능추가 작업이 완료되면 Feature는 Develop로 Merge한다. QA를 위해 Develop에서 Release 브랜치를 생성한다. QA를 진행 하면서 발생한 버그들은 Release에 수정된다. QA가 끝나면 Release 브랜치를 Develop 와 Master 브랜치로 각각 Merge 한다. Hotfix 브랜치는 언제나 Master에서 시작해야 합니다. 작업이 완료되면 Hotfix는 Master 와 Develop 브랜치로 각각 Merge 한다.