Git을 이용하여 버전 관리를 하고 백업을 수행하는 기능뿐만 아니라 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 분산 개발 기능이다. 각각 독립적인 작업 영역 안에서 하나의 새로운 버전을 만들어 낼 수 있다.
- master branch를 checkout 합니다.
- feature branch를 각자 만든다.
- feature branch에서 각자 맡은 기능을 개발한다.
- 개발이 끝나면 commit 한다.
- feature branch를 master/develop branch와 병합한다(merge).
Git 브랜치 전략을 사용하면서 어떠한 방법으로 브랜치들을 관리하고 사용할지는 팀 단위에서 브랜치 사용 전략을 정하기 나름인데 이 전략들을 조금 더 체계화한 룰을 워크플로우(Workflow)라고 한다. 워크플로우 종류로는 Centralized Workflow
, Feature Branch Workflow
, Github-flow Workflow
, Git-flow Workflow
, Forking Workflow
등이 있다.
Git-flow 란 5가지의 브랜치를 이용해서 저장소를 운영하는 Git 브랜치 전략 중 대표적인 워크플로우 모델 중 하나이다. 5가지 중 항시 유지되는 메인 브랜치 master
, develop
2가지와 merge 되면 사라지는 보조 브랜치 feature
, release
, hotfix
3가지로 구성된다.
master
: 라이브 서버에 제품으로 출시되는 브랜치.develop
: 다음 출시 버전을 대비하여 개발하는 브랜치.feature
: 기능 개발 브랜치. develop 브랜치에 들어간다.release
: 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트를 진행하고 master 브랜치로 합친다.hotfix
: master 브랜치에서 발생한 버그를 수정하는 브랜치.
개발자는 develop 브랜치로부터 본인이 신규 개발할 기능을 위한 feature 브랜치를 생성한다. feature 브랜치에서 기능을 완성하면 develop 브랜치에 merge를 진행하게 된다.
feature 브랜치들이 모두 develop 브랜치에 merge 되었다면 QA와 테스트를 위해 release 브랜치를 생성한다. release 브랜치를 통해 오류가 확인된다면 release 브랜치 내에서 수정을 진행한다. QA와 테스트를 모두 통과했다면, 배포를 위해 release 브랜치를 master 브랜치 쪽으로 merge하며, 만일 release 브랜치 내부에서 오류 수정이 진행되었을 경우 동기화를 위해 develop 브랜치 쪽에도 merge를 진행한다.
만일 배포된 라이브 서버(master)에서 버그가 발생된다면, hotfix 브랜치를 생성하여 버그 픽스를 진행하고, 종료된 버그 픽스를 master와 develop 양 쪽에 merge하여 동기화 시킨다.
GitFlow 사용방법
https://inma.tistory.com/112