개발자 여러명이서 협업할때 브랜치 기능을 남발한다면 개발 과정이 엄청 복잡해지고 누가 무엇을 했는지 추적하기도 어려워진다.
그래서 git 을 이용해서 협업할때, 브랜치를 깔끔하게 하고 싶으면 여러 전략이 아래와 같이 있다.
가장 유명한 Git Flow 전략은
main 브랜치에 현재까지 완료한 작업물을 두고
develop 브랜치를 만들어 신기능을 개발한다. 하지만 develop 브랜치에도 직접 코드를 푸쉬해버리면 참사가 일어날 수도 있기 때문에
feature 브랜치를 만들어 개발한뒤 잘 만들어지면 develop 브랜치에 합치고 합치고 하는 방법으로 코드를 짠 뒤
release 브랜치를 만들어 develop 브랜치를 푸쉬하고 여러 테스트들을 해본 뒤 릴리즈 브랜치를 메인 브랜치에 합쳐서 완성하는 방법이다.
그림으로 표현하자면 아래와 같이 되겠다.
하지만 결과물에서 예상치 못한 버그가 발생한다면
hotfix 브랜치를 만들어 수정하고 메인과 디벨롭 브랜치에 푸쉬하는 방법이다.
git flow 전략의 장점으로는 안정적으로 버전별 배포가 가능하지만 단점으로는 CI/CD(애플리케이션 단계를 자동화하여 더 짧은 주기로 고객에게 제공하는 방법) 같은걸 할때는 적합하지 않을수 있다.
다른 전략으로는 Trunk-based 전략이 있는데
메인 브랜치를 두고 feature 브랜치만 만들어 작업하고 바로 메인 브랜치에 푸쉬해서 작업하는 전략이 있다.안정화된 프로젝트들이 이 전략을 사용한다.