프로젝트 형상 관리에 Git-Flow를 적용하기 위해 정리 함
Branch 종류
Git-Flow는 5가지 브랜치를 사용
1. master
- 유지 브랜치
- 실제 프로그램이 배포되는 브랜치 (Production (운영 Branch))
2. develop
- 유지 브랜치
- 개발 브랜치 (Develop(개발 Branch))
- 개발 완료 후 release 브랜치에 merge
3. release
- 유지 브랜치
- QA 테스트 브랜치 (Staging (품질 테스트 Branch))
- 테스트 완료 후 master 브랜치에 merge
4. feature
- 보조 브랜치
- 기능 개발 브랜치 (실제 개발)
- 일정에 맞춰 develop에 merge 및 해당 브랜치 삭제
5. hotfix
- 보조 브랜치
- 긴급 오류 해결을 위한 브랜치 (운영 버그 수정)
- 오류 수정 후 master에 merge 및 해당 브랜치 삭제
Git flow 설치하기
$ brew install git-flow-avh
초기화
$ git flow init
메인 브랜치
1. materst branch
- origin/master에 두고 관리
- master 브랜치에 merge는 새로운 버전을 의미
2. develop branch
# -d를 붙이면 develop이라는 브랜치 생성 됨
$ git flow init -d
- origin/develop에 두고 관리
- 개발자들이 개발한 소스를 반영하는 브랜치
- develop 브랜치는 master에서 파생됨
- release (QA 브랜치)를 사용하지 않을 경우 master에 merge하고 배포 버전으로 태그를 담
보조 브랜치
1. feature 브랜치
- develop에서 파생된 브랜치
- 개발 완료 후 develop 브랜치에 merge
# 새 기능 개발 시작
$ git flow feature start 브랜치명
# 새 기능 개발 완료
$ git flow feature finish 브랜치명
# 새 기능 게시
$ git flow feature publish 브랜치명
# 게시된 기능 가져오기
$ git flow feature pull origin 브랜치명
2. release 브랜치
- develop에서 파생된 브랜치
- master에 merge하기 전 테스트 진행
- release 브랜치에서는 기능 개발은 X
- 버그 수정 및 출시 준비 작업만 수행
- 완료되면 master와 develop에 merge 수행
# 릴리즈 시작
$ git flow release start 버전
# 릴리즈 완료
$ git flow release finish 버전
# 태그 푸시
$ git push --tags
3. hotfix 브랜치
- master에서 파생된 브랜치
- master에 배포한 제품에 버그를 즉각 대응할 때 생성
- 버그 수정 후 master와 develop에 merge 수행
# 핫 픽스 시작
$ git flow hotfix start 버전 [BASENAME]
# 핫 픽스 완료
$ git flow hotfix finish 버전
참고
https://dahye-jeong.gitbook.io/git/git/2019-01-27-git-flow?
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html#comment-4550019179?