[GIT] Git Flow
git flow가 무엇인지 살펴보자.
깃 플로우란?
- 브랜치를 어떻게 운영할 것인가에 대한 좋은 사례
브렌치 종류
- master
- develop
- feature
- release
- hotfix
master
- 언제나 실행 가능한 상태
- 운영 배포 시 해당 branch 에서
Tag
생성 hotfixes
orrelease
를 통해서만 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
가 존재 할 수 있음. - 기능 구현이 완료된
feature
는develop
에 no 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 브렌치는 삭제
댓글남기기