Back

Git-Flow 정리

프로젝트 형상 관리에 Git-Flow를 적용하기 위해 정리 함

Branch 종류

Git-Flow
Git-Flow

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

메인 브랜치

Git-Flow
Git-Flow

1. materst branch

  • origin/master에 두고 관리
  • master 브랜치에 merge는 새로운 버전을 의미

2. develop branch

# -d를 붙이면 develop이라는 브랜치 생성 됨
$ git flow init -d
  • origin/develop에 두고 관리
  • 개발자들이 개발한 소스를 반영하는 브랜치
  • develop 브랜치는 master에서 파생됨
  • release (QA 브랜치)를 사용하지 않을 경우 master에 merge하고 배포 버전으로 태그를 담

보조 브랜치

Git-Flow
Git-Flow

1. feature 브랜치

  • develop에서 파생된 브랜치
  • 개발 완료 후 develop 브랜치에 merge
# 새 기능 개발 시작
$ git flow feature start 브랜치명
# 새 기능 개발 완료
$ git flow feature finish 브랜치명
# 새 기능 게시
$ git flow feature publish 브랜치명
# 게시된 기능 가져오기
$ git flow feature pull origin 브랜치명

Git-Flow
Git-Flow

2. release 브랜치

  • develop에서 파생된 브랜치
  • master에 merge하기 전 테스트 진행
  • release 브랜치에서는 기능 개발은 X
  • 버그 수정 및 출시 준비 작업만 수행
  • 완료되면 master와 develop에 merge 수행
# 릴리즈 시작
$ git flow release start 버전
# 릴리즈 완료
$ git flow release finish 버전
# 태그 푸시
$ git push --tags

Git-Flow
Git-Flow

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://88240.tistory.com/489

https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html#comment-4550019179?

https://nvie.com/posts/a-successful-git-branching-model/

comments powered by Disqus