Git Branch 전략이란
여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 workflow이다.
* workflow : 특정 순서에 따라 발생하는 반복적인 프로세스와 작업을 관리하는 시스템
각 브랜치는 생성,삭제,병합 등 git의 유연한 구조를 활용해서 브랜치에 규칙을 정해 놓고, 각 개발자들의 혼란을 최대한 줄이며 다양한 방식으로 소스를 관리하는 역할을 한다.
☞ 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법
관례적으로 사용되는 Git 브랜치 전략
Git Flow

위 사진만 봐도 브랜치가 여러 개며, 규칙들이 복잡해 보인다 기본적인 브랜치의 이름은 아래의 5가지로 구분하곤 한다
- master(main) : 운영환경에 배포될 수 있는 코드를 모아둠(실제 배포할 수 있는)
- hotfix : 운영환경에 빠르게 수정해야할 버그가 있을 때 main을 빠르게 변경하기 위해 사용 ( 버그 긴급 수정 브랜치)
- release : 새로운 버전의 배포를 위한 브랜치
- develop : 개발 중인 코드가 저장되는 브랜치
- feature : 새로운 기능을 개발하기 위한 브랜치(단위 기능을 개발하는)
GitHub Flow

master(main) →언제든 배포가 가능한 상태를 유지해야 한다. master(main) 으로 merge하기 전에는 엄격한 테스트를 거쳐야 한다.
나머지 브랜치 → 자유롭게 생성이 가능하나 , 브랜치 명, 커밋 메세지는 어떤 일(기능)을 하고 있는지 자세하게 작성해야 한다.
이번 학원에서 진행하는 Final Project에서는 Git Flow를 사용하는데, 소규모 프로젝트에 맞춰 사용하려고 한다.
아래와 같이 간단하게 정리해 보았다.

1. feature : 단위기능 브랜치 생성(브랜치 이름을 통해 의도(기능)를 명확하게 드러낼 것)
2. develop : feature브랜치에서 기능을 완성하면 develop브랜치에 push
3. QA : 담당자지정, bug&issue, 수정사항, 다른 조원들의 코드 리뷰 진행
4. master : QA브랜치에서 모두 정정 했다면, 배포를 위해 master로 merge진행