📝 Git Flow 대한 접근 계기
실무에서 SVN을 사용하다가 Git으로 넘어오면서
Git Flow에 대해 관심이 생겨서 정리를 하려고 한다.
📝 Git Flow 란 ?
■ 정의
직역 하여 흐름이라는 의미로서 Git 에서 제공하는 강력한 브랜칭 기능을 활용한 소스 변경 이력 관리 전략
■ 예시 사진
- Git Flow 하면 가장 유명한 배민에서 사용하고 있는 Git Flow 사진이다.

📝 Git Flow branch 에 대하여
■ main branch ( = master branch )
- 제품으로 출시될 수 있는 branch
- main branch 의 최신 버전은 언제나 실행이 가능한 프로그램이다.
■ develop branch
- 현재 개발하고 있는 branch
- 단독 프로젝트라면 이 브랜치에 직접적으로 commit 하여도 상관없지만 협업 중이라면 feature 브랜치를 활용하여야 한다.
- Release 하게되면 release branch 로 Merge 한다.
- 프로젝트를 배포하게 된다면 main 브랜치로 merge 한다.
■ feature branches
- 기능별 개발이 이루어지는 branch
- 다른 branch 들과는 다르게 feature branch 는 N개 존재할 수 있다.
- 프로젝트 협업 시 feature_기능명 으로 분기시켜서 다중 작업이 가능하도록 한다.
- 각자 맡은 부분이 개발이 완료되면 자신이 개발한 feature_기능명 branch 를 develop 브랜치로 merge 한다.
■ hotfixes branch
- 급한 버그 수정이 이루어지는 branch
- Release 직전에 버그가 발생되는 경우 분기되는 branch 이다.
- 배포 후 현장에서 갑자기 치명적인 버그가 발생하는 분기되는 branch 이다.
- 수정이 완료되면 분기를 시작한 branch 로 merge 한다.
■ release branch
- 프로젝트의 배포는 아니지만 개발이 완료되었을 경우 사용하는 branch
- 개발이 완료되어 실행이 가능한 프로그램이다.
📌 마무리
현재 실무에서 완벽하게 사진과 똑같이 Git Flow 를 사용하진 않지만,
Git Flow에 대한 개념이 도입이 되고 유동적으로 사용함으로서 팀원들과의 협업이 훨씬 효율적으로 변한 것을 체감하고 있다.