1. 브랜치 전략
Git 을 사용하면서 Branch를 어떤식으로 사용할지에 대한 전략
Git Flow
- Local 중심
- 주로 로컬 저장소에서 브랜치를 중심으로 한 개발 흐름중심
Github Flow
- Remote중심
- 주로 리모트 저장소에서의 작업 흐름 중심
2. Git flow

2.1 main(master)
배포의 기준이 되는 브랜치이면서 Release Tag를 기록하는 브랜치
🤔 Release Tag가 뭐야?
👉 소프트웨어 개발에서 특정 시점의 버전을 기록하는 Git의 태그중하나. -> 배포한 코드를 버전 관리하기 위해 사용됨.
git tag v1.0.0
git push origin v1.0.0
Release Tag는 코드 관리에서 배포의 이력을 관리하는 중요한 도구.
2.2 develop
- 개발의 중심이 되는 브랜치.
- 배포 버전별로 정의된 기능을 구현하여 develop 브랜치에 모으고
코드를 배포할때, develop 브랜치로부터 release브랜치를 만들어 준비.
- 실제 기능 구현은 develop이 아닌, feature 브랜치에서 진행함.
2.3 feature
- 실제로 기능을 구현하는 브랜치
- 기능구현, 버그픽스, 리펙토링 등을 수행하기 위해 develop 브랜치로부터 브랜치를 만들어 작업 수행.
- feature 브랜치에서 작업이 완료되면, develop 브랜치에서 merge함.
2.4 release
- 배포를 준비.
- develop 브랜치에서 배포를 위한 개발이 끝나면, release 브랜치를 만들어 배포 준비함.
- 배포준비가 완료되었다고 생각되면, main 브랜치로 merge진행함.
2.5 hotfix
- 배포가 완료된 버전에서 심각한 버그나 문제가 발생했을 때 사용하는 브랜치
- main 브랜치에서 hotfix브랜치를 만들어 문제를 해결한 후, 필요한 브랜치들에 merge함.
3. Github Flow

Github Flow는 Remote 중심의 브랜치 전략
- main 은 git flow의 [main, develop, release] 브랜치 역할이 합쳐진것
- feature브랜치는 git flow의 [feature, hotfix] 브랜치 역할 합쳐진거.