Vincent Driessen의 branching model을 적용해 고수준으로 저장소를 관리할 수 있게 해주는 확장 기능이다. branching model은 feature - develop(dev) - release - hotfix - master 단계로 브랜치를 나눠 코드를 관리하는 전략이며 사용자가 쉽게 접근하고 사용할 수 있도록 확장 기능(명령어)을 제공하는 것이다. git-flow에는 5가지 브랜치가 있다. 항상 유지되는 주요 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다
$ git flow init
: git 저장소를 git flow 에 맞게 초기화. git flow init 명령으로 위 5개의 branch + support branch(버전 호환성 문제를 위한 branch) 총 6개의 브랜치가 지정되고 , 새로운 기능 개발을 위해 develop branch 에서 시작 된다.
$ git flow feature start [branch_name]
: develop branch 에 기반한 새 브랜치 feature 를 만들고 branch가 전환된다.
$ git flow feature finish [barnch_name]
: feature branch 를 develop branch 에 merge 하고 , feature branch 는 삭제하고 develop branch 로 돌아간다.