한 걸음씩 기록하며
#.5 Git Flow 본문
1) Git flow의 구조
- 기본적으로 Five Branch로 구분된다.
- feature > develop > release > hotfix > master
- 5개의 브랜치 중에 가장 많이 사용되는 branch는 master와 develop이다.
- 나머지 feature, release, hotfix branch는 사용하지 않는다면, 깔끔한 프로젝트 진행을 위해 원한다면 지웠다가 다시 활용하곤한다.
- 대부분의 작업은 develop에서 취합하고, 테스트를 통해 변동사항이 없다 싶을 때, master로 병합된다.
2) 각 branch의 기능
- Master
- production을 위한 브랜치이다.
- 공식적으로 사용자에게 제공되었던 버전들만 모아놓는 브랜치라고 할 수 있다.
- develop
- base branch : master
- 통합적인 개발을 위한 브랜치이다. 필요에 따라 release와 feature로 브랜치되고 머지한다.
- feature
- base branch : develop
- 새로운 기능을 추가하기 위한 브랜치. 기능에 대한 작업이 끝나면 develop에 merge된다.
- origin에 반영되지 않고, local repo에만 존재하는 경우가 많음
- release
- base branch : develop
- 새로운 production 릴리즈를 위한 브랜치
- 현재까지의 기능들을 묶어서 develop에서 브랜치
- develop에는 다음번 릴리즈를 위한 기능들을 추가
- release의 버그는 release에 직접 반영하고, 필요하다면 변경사항을 develop에도 merge
- develop에는 다음번 릴리즈를 위한 기능들을 추가
- release 준비가 완료되면 master와 develop에 merge
- hotfix
- base branch : master
- production에서 발생한 버그들을 긴급하게 fix하는 브랜치
- 수정 후 master와 develop에 머지된다.
3) Git flow의 장단점
- 장점
- 명령어가 명료하게 나와있다.
- 거의 모든 에디터들과 IDE들에 플러그인으로서 이미 존재하고 있다.
- 단점
- 브랜치가 뻗어나가는 구조가 복잡하여 관리 등에 어려움이 있다.
- 몇몇 브랜치는 쓰이지 않는 경우가 있으며 또한 애매한 위치의 브랜치가 존재한다.
'Git' 카테고리의 다른 글
#.7 Github로 협업하기 (0) | 2021.12.22 |
---|---|
#.6 Github Flow (0) | 2021.12.22 |
#.4 branch (0) | 2021.12.22 |
#.3 Remote (0) | 2021.12.22 |
#.2 Git Local 명령어 정리 (0) | 2021.12.22 |
Comments