최근에 회사에서 진행하고 있던 프로젝트에 Git Flow를 적용해보았다. 말로만 들어서 정확한 사용법을 몰랐던 Git Flow를 드디어! 했다. 왠만한 기업에서는 다 쓴다는데,, 후다닥 적용해보자.
Git Flow를 검색한 적있다면 우아한 기술블로그글을 한번쯤은 본 적 있을 거다. 여기가 설명이 더 잘되어 있으니 참고하기!!
간단하게 보면 Git Flow는 브랜치 관리를 더 쉽게 도와주는 도구라고 보면 된다. 관리하는 브랜치의 종류는 크게 다섯가지.
1. master: 이미 출시된 브랜치
2. develop: 다음 출시 버전으로 개발중인 브랜치
3. feature: 기능단위 개발 브랜치
4. release: 이번에 출시 준비 중인 브랜치
5. hotfix: 말그대로 핫픽스용 브랜치
예를 들어,
앱스토어에 올라간 버전이 v1.5.0 이면 master 브랜치는 여기에 있어야 한다.
이번에 새로 v.1.6.0을 개발 중이면 develop 브랜치는 여기에 있어야 함.
그리고 v.1.6.0에 포함될 기능 개발은 feature 브랜치에 있어야 하고
v.1.6.0 개발이 완료되어 출시 준비가 다 되었으면 release 브랜치가 여기에 위치한다.
그리고 v.1.6.0이 앱스토어에 올라갔으면 master 브랜치가 다시 여기로 위치한다.
처음에 헷갈릴 수 있는데,
제일 중요한 점은 절대로! master 브랜치에서 직접 개발하면 안된다는 것! -> master에서 작업하면 현업에서 욕 바가지로 먹어요,,
master 브랜치는 develop과 release 브랜치가 merge 되는 용이다.
일단 회사에서 소스트리를 사용하고 있기 때문에 저는 소스트리에 깃플로우를 넣어보겠습니다. 소스트리 창에 보면 Git Flow 아이콘이 없는데, Customize Toolbar에서 끌어다 놓으면 된다.
그리고 터미널에 명령어 입력
brew install git-flow-avh
이렇게 끝나면 잘 된 것!
소스트리에서 Git Flow 버튼 클릭하면 브랜치명 설정할 수 있는데 잘되면 소스트리로 하면 되고, 에러뜨면 터미널에서 아래 명령어 입력
git flow init
그러면 각 브랜치 명 입력하라고 나올텐데 입력하고 엔터하면 됨
우리는 develop 브랜치 이름이 dev라 이렇게 적고 엔터
나머지 브랜치명도 적고 엔터!
Branch name for "next release" development: [] dev
그럼 브랜치 설정 끝!
만약에 나중에 다른 브랜치로 변경하고 싶으면 터미널에 아래 명령어 치고 각 브랜치 이름 적으면 됨
git flow init -f
그럼 이제 develop 브랜치로 체크아웃 한 후에 Git Fow 버튼을 누르면 아래 창이 뜰 것이다.
여기서 Start a New Feature 클릭하면 feature 브랜치를 만들 수 있다.
브랜치 이름만 적으면 자동으로 develop 브랜치에 딸린 'feature/브랜치명' 브랜치가 생성된다.
기능 개발이 끝난 후에는 feature 브랜치로 체크아웃 한 후 Git Flow 버튼을 클릭하면 아래 창이 뜰 것이다. 여기서 Finish Current 클릭하면 자동으로 develop 브랜치로 병합된다.
릴리즈나 핫픽스의 경우 아까 develop 브랜치로 체크아웃 한 후 Git Flow를 클릭하면 나왔던 창에서 만들 수 있다.
핫픽스 브랜치도 브랜치 이름만 적으면 'hotfix/브랜치명'으로 브랜치가 생성된다. 수정이 끝났으면 feature와 동일하게 Finish Current를 클릭하면 자동으로 develop 브랜치로 병합된다.
릴리즈도 동일한데, Finish Current를 하면 release -> develop 으로 병합된 후, release -> master 로 병합된다. 즉, develop과 release 브랜치의 변경사항이 모두 master 브랜치로 들어간다고 보면 된다.
그리고 릴리즈 버전 태그도 생성할 수 있다.
master 브랜치에서는 별다른 작업을 하지 않고, 작업 병합만 진행하는 것이다. 다시 한 번 강조하지만!! 절!대! master 브랜치에서 직접 기능 개발을 하면 안된다!!!!!
Git Flow를 처음 들어보거나 접한 분들은 더 늦기 전에 꼭 한 번이라도 적용해보길 바란다. 사용해보면 정말 편하고 왜 현업에서 잘 사용하는지 직접 느낄 것이다.
저처럼 늦장부리지 말고 얼른 해보세요!