[GIT] Git Flow

1 분 소요

git flow가 무엇인지 살펴보자.

깃 플로우란?

- 브랜치를 어떻게 운영할 것인가에 대한 좋은 사례

image

브렌치 종류

  • master
  • develop
  • feature
  • release
  • hotfix

master

  • 언제나 실행 가능한 상태
  • 운영 배포 시 해당 branch 에서 Tag 생성
  • hotfixes or release 를 통해서만 merge 가능

develop

  • 실행 가능한 상태를 만들어가는 브랜치
  • 모든 브랜치(feature, release, hotfix, master) 와 동기화 되어있어야 함.
  • 주로 feature 의 merge 대상이 됨.

release

  • 출시를 준비하는 브랜치
  • naming : release/{차기 버전명} ex) release/1.1
  • 배포 전 develop에서 checkout 을 통해 추가 기능의 유입을 막는 역할
  • 해당 브랜치는 오로지 버그 수정만 가능
  • 정상 동작 확인 후 master에 merge (+ develop에도 merge 필수)
    • 배포 기록을 남기기 위해 반드시 버전이 명시된 commit 메시지와 함께 no fast forward merge 해야 함. (ex. git merge --no-ff release/1.1)
    • master 가 release 와 병합했다는 로그를 남기는 것이 git flow 정책
  • master merge 후 배포버전에 대한 Tag 생성
  • 배포 완료된 release 브랜치는 삭제

feature

  • 구현 기능 단위 별 feature 생성
  • naming : feature/{기능명}
  • 병렬적으로 여러 feature 가 존재 할 수 있음.
  • 기능 구현이 완료된 featuredevelopno fast forward merge한다.
  • merge 완료 후 해당 feature 브랜치 삭제

hotfixes

  • 운영 배포된 소스의 버그를 긴급 수정하기 위한 브랜치
  • naming : hotfixes/{차기 버전명} ex) 기존 : Tag 1.2 -> hotfix/1.2.1
  • 배포 버전에 긴급한 버그 수정이 필요한 경우 master branch 에서 checkout 후 오로지 버그만 수정
  • 수정 후 master, develop 둘 다 no fast forward merge 필요
  • master 에서 수정된 버전으로 Tag 를 남김.
  • 완료된 hotfixes 브렌치는 삭제

참고

태그: ,

카테고리:

업데이트:

댓글남기기