Giflow is an alternative Git branching model that involves the use of feature branches and multiple primary branches.
Git flow는 Git branching model로서 Git으로 관리되는 Branch 들의 관리방법을 정의한 것이다.
Project를 여러 명이 개발하고 그 Project가 Release가 된다면 Version 관리는 필수적이다. 그리고, 소스코드의 버전관리를 위해서는 Branch의 관리가 잘되어야 한다. 아래의 Branch들의 기능을 보면 어떻게 Branch를 관리해야하는지 쉽게 이해가 가능하다.
글로 기능을 확인하면 내용을 정확히 이해하기 힘들다. 그림과 함께 간단히 설명해 보겠다.
Release branches
Release branch 은 develop branch의 변경 사항을 master branch 로 merge 시킨 후에 Release version tag를 붙이는 작업에 주로 사용된다. 그리고 develop의 version을 Development version으로 업데이트 한다. Java project에서는 보통 SNAPSHOP 버전이 붙여진다.
Hotfix branches
Hotfix branch는 Release version에서 Bug가 발생하였 때 그것을 해결하기 위한 용도로 사용한다. 위의 그림에서 v0.1 버전에서 Bug가 발생되어 v0.2 버전으로 업데이트 되었다. 이 때 Branch를 master로 merge를 할 때 develop branch의 Development version도 업데이트를 시켜준다.
Feature branches
Feature branch는 새로운 Feature가 추가될 때마다 develop branch에서 파생하여 그 변경 사항을 구현 후 develop으로 머지된다.
보통 이러한 Branch들은 기본적으로 많이 사용되기 때문에 잘 이해하고 있으면 도움이 많이 될 것이다.