
협업 방식을 채택하는 이유
프로젝트가 커지고 사람이 많아지면 branch, merge가 복잡해지기 때문에 GitFlow/ Github Flow/ Trunk-based 등을 사용하게 된다.
GitFlow

5개의 브랜치를 운영
- develop에 복제본을 만들어 개발을 진행
- feature에 신기능을 테스트를하며 개발후 develop에 합쳐준다
- develop에서 main에 합치기 전에 임시 release브랜치에 테스트를 진행후 오류가 생기지 않으면 메인에 최종적으로 합쳐준다.
- 메인에서 배포를 했는데 버그가 생겨 문제가 생기면 급하게 hotfix를 만들어 문제를 해결뒤 바로 메인에 합쳐준다.
장점: 안정적으로 버전별 배포가 가능하다
단점: CI/CD를 사용하는 곳은 좋아하지 않는다.
Trunk-based, GithubFlow (둘이 비슷하다)

main 브랜치 하나만 운영하여 개발을 진행
기능이나 개발은 feature 브랜치를 만들어 개발 후 바로 메인에 합친다.
장점: 소스코드를 여러개 관리할 필요가 없다.
단점: 테스트를 자주 해주어야한다.