branch의 종류
- main branch : master, develop
- feature branch (topic branch)
- release branch
- hotfix branch
main branch
- master branch
배포 가능한 상태만을 관리하는 branch. master branch에 커밋 시 태그로 버전 번호를 기록함.
- develop branch
주된 개발 활동이 일어나는 branch. 이 branch를 기반으로 개발을 진행.
feature branch
topic branch. develop branch로부터 분기해 개발을 진행함. feature branch는 공유하지 않으며, 개발이 완료되면 그 때 develop branch에 merge하여 변경내용을 다른 사람과 공유.
release branch
배포 전 최종적으로 잘 작동하는지 체크하는 branch이며 보통 branch 이름에 release-를 prefix로 붙임. 배포 하기 전 모든 기능이 잘 작동하는지 확인하고 최종적인 버그 수정을 진행하는 브랜치. 수정 사항을 모두 수정한 후 배포가 가능하게 되면 master branch에 merge하며, 해당 commit의 태그로 릴리즈 번호를 붙임. 또한 release branch 에서의 수정 사항은 master branch와 develop branch 모두에 merge해서 문제가 된 부분에 대한 수정 사항을 반영해줘야 함.
hotfix branch
배포한 버전에서 심각한 문제가 발생했을 경우 정식 개발 과정 외에 긴급히 수정하는데 사용하는 branch. 보통 branch 이름에 hotfix-를 prefix로 붙임. master branch 에서 직접 branch를 만들어 버그를 수정한 뒤 master branch에 merge. 또한 hotfix branch에서의 수정 사항은 master branch 와 develop branch 모두에 merge해서 문제가 된 부분에 대한 수정 사항을 반영해줘야 함.
references