Git 고급 브랜치 전략 소개와 Gitflow를 통해 우리 프로젝트에 적용하는 방법에 대해 소개합니다.
Vincent Driessen가 제안한 고급 브랜치 전략으로 브랜치를 다음과 같이 분류하고 규칙을 정해 버전관리를 합니다.
master
develop
feature
release
hotfix
위에서 소개한 브랜치 모델을 쉽고 편하게 사용할 수 있도록 지원하는 도구입니다.
먼저 gitflow 를 설치합니다.
Mac 에서는 brew를 이용해 간단하게 설치할 수 있습니다.
# OSX
brew install git-flow-avh
# Linux
apt-get install git-flow
git repository에 gitflow 를 적용하기 위해 아래 명령어를 입력합니다.
git flow init
git flow init
명령을 실행하면 git repository 에 gitflow 브랜치 모델을 적용하기 위한 설정 절차를 진행합니다.
초기화가 완료되면 Main 브랜치인 master 와 develop 브랜치가 생성되어있습니다.
신규 기능 개발을 위해 develop 브랜치를 기준으로 분기하는 feature 브랜치를 구성해야합니다. Gitflow 는 아래 명령어를 통해 진행할 수 있습니다.
git flow feature start name-of-feature
그럼 feature/name-of-feature
브랜치가 생성되며 기능 개발이 가능합니다.
기능 개발이 완료됐다면 커밋한 후 develop 브랜치에 머지를 해야하는데요. Gitflow 는 아래 명령어로 가능합니다.
git flow feature finish name-of-feature
그럼 develop 체크아웃 -> feature/name-of-feature 브랜치 develop으로 머지 -> feature/name-of-feature 제거 작업이 진행됩니다.
어느정도 기능이 준비되어 다음 릴리즈를 할 수 있는 수준에 도달하면 release 작업을 진행합니다.
git flow release start release-name
위 명령어는 release/release-name 으로 브랜치를 생성합니다.
이후 운영 배포 전 최종 점검, 발견되는 문제 수정을 진행 후 완전히 배포 준비가 마무리되면, master 에 merge 를 진행하고 develop 에도 Back merge를 해야하는데요.
이것 역시
Git flow release finish release-name
명령어로 간단하게 진행할 수 있습니다.