사내에 운용중인 사이트의 버전 관리가 체계적으로 되지 않은 것을 계기로 이번에 Git Flow를 사용한 버전 관리 시스템에 대해서 알아보고 도입하고자 한다.
Git Flow는 Git으로 버전 관리를 효율적으로 하기 위한 브랜치 관리 전략이다.
각 역할별로 브랜치를 나누어 관리함으로써 보다 효율적이고 직관적인 버전 관리를 할 수 있게 된다.

Git Flow 운용의 핵심은 역할에 맞게 브랜치를 나누는 것이다.
브랜치는 크게 5가지로 나눠서 운용되는데, feature, develop, release, main, hotfix이다.
개발자들이 담당 기능을 실제 개발하기 위해 생성하는 브랜치.
브랜치명을 feature로 부여하는 것이 아닌, "feature/login"와 같이 feature 하위에 서로 약속한 네이밍 규칙대로 브랜치명을 작성하고 개발을 진행하며, 개발이 완료된 후 develop에 반영한다.
각자 담당한 기능의 통합을 위한 브랜치이며, 개발 및 단위 테스트가 완료된 기능을 통합하는 역할을 담당한다.
devlop으로부터 생성되는 실제 배포를 앞두고 최종 점검을 하기 위한 브랜치로, 점검 후 수정 내용을 반영해 develop과 main에 각각 반영한다.
실제 서버에서 운용되는 시스템의 코드와 동일한 싱크로 관리되는 브랜치로, 배포 직전의 코드를 관리한다.
급하게 버그 수정이 필요한 경우, main을 기준으로 생성하는 브랜치로, 대응이 완료된 시점에 master와 develop에 각각 반영한다.