- Published on
Git Flow 란
- Authors
- Name
- piano cat
Git Flow 란
Git Flow란 브랜치를 나누는 전략입니다.
Git Flow에선 일반적으로 브랜치를 5가지로 나뉩니다.
- main: 제품으로 출시될 수 있는 브랜치
- develop: 다음 출시 버전을 개발하는 브랜치
- feature: 기능 개발 브랜치
- hotfix: 출시된 버전에서 빌생한 버그 수정브랜치
- release: 이번 출시 버전 준비 브랜치
main 과 develop 브랜치는 필수 브랜치이며, 나머지 브랜치는 필요에 의해서 사용됩니다.
아래 이미지는 일반적인 Git Flow 흐름을 나타내는 이미지입니다.
feature 브랜치는 주로 'feature/기능이름' 으로 네이밍합니다.
흐름대로 간략하게 설명해보면, main
브랜치에서 시작하여 develop
브랜치를 생성합니다.
기능을 추가해야할때마다 develop
브랜치에서 feature
브랜치를 생성해서 개발하고 완료 되면 develop
브랜치에 merge 합니다.
개발이 완료된 제품을 배포해야 할때는 develop
브랜치에서 release
브랜치를 생성합니다. release
브랜치에 올라갔을때 QA를 진행하고 수정해야할 내용들은 release
브랜치에서 수정진행합니다. 수정이 완료되고 최종 배포를 진행할때 main
, develop
브랜치에 merge 를 진행합니다. 이후 main
브랜치에는 버전 tag 를 붙입니다.
브랜치를 분리하는 이유
기본적인 개발 프로세스는 기획-디자인-개발-QA-출시 이와 같은 과정을 여러번 반복합니다. 그렇기때문에 각 브랜치에 목적에 맞게 개발을 진행하고 기록하면 이후 프로젝트를 파악하기 쉬워지며, 원할하게 일이 진행될 수 있습니다. 또한 개발자들이 한 프로젝트를 같이 협업할때 잘짜여진 프로세스대로 브랜치 전략을 사용하면, 커밋이 꼬이게 되거나 merge를 할때마다 해결해야 하는 상황이 일어나지 않도록 대비할수 있습니다.
참고