728x90
Git Flow 란?
git flow란 git을 통해 소스코드를 관리할 때 브랜치를 어떻게 관리하는가에 대한 브랜치 전략 중 하나다.
Vincent Driessen의 블로그에서 제안한 글을 기반으로 만들어 졌고, 현재 git으로 소스코드를 관리하는 많은 기업들에서 표준으로 자리잡고 있는 방법론이다.
git flow는 push, commit, pull request 등과 같은 어떤 기능이 아닌 코드 컨벤션과 같은 서로간에 정하는 약속, 방법과 같은 것이기 때문에 각 회사, 혹은 개발 환경에 맞게 수정 변형해서 사용할 수 있다.
Git Flow 의 핵심 브랜치 전략
- master : 서비스가 배포되는 브랜치
- develop : 현재 개발중인 코드의 가장 상위 브랜치
- feature : 단위 기능을 개발하는 브랜치 - 기능 구현 후 develop 브랜치로 병합
- release : develop 에서 master 로 배포하기 전 QA(품질검사) 를 위한 브랜치
- hotfix : master 브랜치 배포 후 버그 발생시 긴급 수정하는 브랜치
위와 같은 5개의 핵심 브랜치가 있고, master 와 develop 브랜치는 반드시 존재해야 하는 핵심 브랜치가 된다.
Git Flow 전략 예시
- 프로젝트는 master 브랜치에서 시작한다.
- 개발을 위해 master에서 develop 브랜치를 생성한다
- develop 브랜치에서 단위기능 A와 B를 개발하기 위해서 feature A 와 feature B 브랜치를 생성한다.
- feature A 기능 구현이 완료되었다면 develop 브랜치로 merge 한다 feature B 기능 구현이 완료되었다면 develop 브랜치로 merge 한다
- develop 브랜치에서 배포하기 전 QA(품질검사)를 위해 release 브랜치를 생성한다. 이때, release 브랜치에서는 기능 개발이 아닌 오직 bug fix 만 진행한다
- release 브랜치의 QA를 통과하였다면 master 브랜치에 merge 하여 배포한다
- 배포 후 버그가 발생했다면 긴급수정을 위한 hotfix 브랜치를 생성해 버그를 수정 후 배포한다.
마무리
현재까지는 git을 통한 소스관리를 할 때 master 브랜치만을 이용해서 작업을 했었다.
그러다보니 다른 사람과 함께 코드를 올리면 충돌이 자주 발생하고 코드에 이상이 있어 이전 커밋으로 되돌릴때 머리를 싸매면서 git만 붙잡고 있는 시간이 길었다.
이제부터는 간단한 프로젝트라도 git flow 전략을 이용해보는 것이 좋을 것 같다.
728x90
'Git' 카테고리의 다른 글
커밋 메시지 가이드 (Udacity Git Commit Message Style Guide) (0) | 2022.11.06 |
---|