07. git flow
깃 플로우(git flow)는 Vincent Driessen 라는 사람이 제시한 branch관리 방법론이다.
즉, git의 어떤 기능이나 프로그램이 아니라 "우리 git을 이런식으로 써보자!" 라고 하는 것이다.
git flow branch 종류
git flow 전략에서는 총 5가지의 branch를 사용한다.
main branches
항상 유지되고 있는 master branch
와 develop branch
가 있다.
- master branch는 항상 배포 가능한 branch이어야 한다.
- develop branch는 개발을 위한 default branch로 이 branch에서 아래에 나올 supporting branch들을 생성한다
supporting branches
main branch와는 달리 결국은 제거되는 branch들이기 때문에 수명이 존재한다. supprting branch는 ``
Feature branch
, Release branch
, Hotfix branch
로 총 3가지의 branch가 존재한다
Feature branch
develop branch
로부터 생성되고, 다시 develop branch
로 merge된다.
feature branch는 새로운 기능을 개발할 때 사용되는 branch다. merge되지 않는다면 제거되어야 한다.
branch 이름은 뭐든지 가능하다.
Release branch
develop branch
로부터 생성되고, 다시 develop branch
혹은 master branch
로 merge된다.
branch의 네이밍 컨벤션은 다음과 같이 따라야 한다. release-*
release branch는 배포 전 점검을 하는 단계의 branch이다. 출시 전 사소한 버그 수정이나 메타데이터 준비를 허용한다.
Hotfix branch
master branch
로부터 생성되고, 다시 develop branch
혹은 master branch
로 merge된다.
branch의 네이밍 컨벤션은 다음과 같이 따라야 한다. hotfix-*
hotfix branch는 배포된 branch (master branch)로 부터 긴급하게 수정할 일이 생겼을 때 사용되는 branch다.
요약
git flow의 전체적인 흐름은 위의 그림과 같다.
git flow는 새로운 기능이 아니라 branch를 이렇게 활용하고자 하는 model일 뿐이니 각자 팀에 맞게 사용해보자.
🧷 참조
https://nvie.com/posts/a-successful-git-branching-model/
https://techblog.woowahan.com/2553/