Git Flow 브랜치 종류
•
main(master): 서비스을 직접 배포하는 역할을 하는 브랜치
•
develop(개발): feature에서 개발된 내용을 가지고 있는 브랜치
◦
feature(기능): 각 기능 별 개발 브랜치
•
release(배포): 배포를 하기 전 내용을 QA(품질 검사) 하기 위한 브랜치
•
hotfix(빨리 고치기): main 브랜치로 배포를 하고 나서 버그가 생겼을 때 빨리 고치기 위한 브랜치
main(master)
•
모든 기능이 완성된 코드가 들어가는 브랜치
•
해당 브랜치에서는 프로젝트 제일 처음 develop 브랜치로 쪼개는 것 말고는 다른 브랜치로 들어가지 않는다.
•
main에서 급하게 수정이 필요한 부분은 hotfix 브랜치로 옮긴 후 수정이 완료된 후 main 브랜치와 develop 브랜치로 병합한다.
•
main 브랜치는 항상 즉시 배포가 가능한 상태여야 한다.
•
일반적인 브랜치 명 : main(현재), master(옛날)
•
병합(merge)이 가능한 조건
설명 : main → develop(develop += main: develop에서 main을 가져와 develop으로 병합)
◦
초기 : main → develop = 가능
◦
이후 : main → develop = 불가능
◦
main → feature/release = 불가능
◦
main → hotfix → main, develop = 가능
develop(개발)
•
feature에서 개발이 완료된 기능들이 합쳐져 있는 브랜치
•
develop에서 수정이 필요할 때는 hotfix 브랜치에서 수정하는 것이 아닌 수정이 필요한 기능을 개발하는 feature 브랜치에서 수정을 해야한다.
•
일반적인 브랜치 명 : dev
•
병합(merge)이 가능한 조건
◦
release가 없을 때 : develop → main
◦
release가 있을 때 : develop → release → develop
◦
develop → feature → develop
◦
hotfix 완료 시 : hotfix → mia develop
feature(기능)
•
각 기능을 실제로 개발하는 브런치
•
일반적인 브랜치 명 : feat/[기능 명], feat-[기능 명], feature/[기능명], feature-[기능 명]
•
병합(merge)이 가능한 조건
◦
feature → develop (무조건 feature은 develop으로만 이동 가능)
release/staging(배포 전 QA)
•
develop에서 main으로 배포하기 전 QA(품질검사)를 진행하는 브랜치
•
일반적인 브랜치 명 : release/staging
•
병합(merge)이 가능한 조건
◦
버그 수정 시 : release→ develop
◦
배포가 가능할 시 : release→ main,develop
hotfix(빨리 고치기)
•
main에서 예기치 못한 에러가 발생하거나 수정을 위해서 사용하는 브랜치
•
일반적인 브랜치 명 : hotfix
•
병합(merge)이 가능한 조건
◦
hotfix 필요 시 : main → hotfix
◦
hotfix 완료 시 : hotfix → main, develop