Git flow

'Vincent Driessen' 이라는 사람의 브랜칭 모델을 기반으로 한 git extension.


설치방법: https://github.com/nvie/gitflow/wiki/Installation

Homebrew를 사용한다면 아래처럼
brew install git-flow

간략한 설명(복잡한 설명은 원문 참조)

Vincent Driessen's branching model에는 다섯개의 브랜치를 사용한다.

그 중에서 메인 브랜치는 masterdevelop

- master
origin/master 브랜치의 HEAD는 항상 production-ready상태이어야 한다.

- develop
origin/develop 브랜치(integration branch라고도 부름)의 HEAD는 다음 릴리즈 버전을 위한 가장 최근의 변경사항을 반영하고 있어야 한다.
다음 릴리즈를 위한 개발이 완료되었다면 master로 merge된다. 그리고 태그를 붙힌다.
master로 merge가 되었다는것은 새로운 릴리즈가 완성되었다는 의미이다. master에 merge하는 이벤트가 발생하면 git hook을 사용해서 곧바로 production 서버로 올릴수도 있다.

이 밖의 추가적인 브랜치

- Feature branches(Topic branches)
develop 브랜치로부터 생성되고, develop 브랜치에 merge 되어야 한다.
feature branch는 바로 다음 릴리즈에 merge될수도 있고 나중에 merge될수도 있다.
feature branch는 origin repo가 아닌 개발자 repo에 있어야 한다.
merge 할때는 --no-ff 옵션을 추가한다.(나머지 브랜치 merge도 마찬가지)

- Release branches
develop 브랜치로부터 생성되고, develop 또는 master 브랜치로 merge 된다.
새로운 production을 위해 준비중인 브랜치라고 보면 된다. 자잘한 버그 수정 및 릴리즈에 대한 메타데이터를 가지고 있다.
release 브랜치가 만들어지는 시점은 새로운 릴리즈에 포함되어야 할 사항들이 develop 브랜치에 모두 반영이 되었을때이다.
release branch가 master에 merge가 되면 release branch는 더 이상 필요없으므로 삭제한다.

- Hotfix branches
급히 수정되어야 할 사항들이다. 주로 master로부터 브랜칭되며 수정이 완료되면 master와 develop에 함께 반영한다. 작업이 끝나면 hotfix 브랜치는 삭제한다.


댓글

  1. Casino Games Near Me - MapYRO
    Find Casinos Near Me in 안성 출장안마 Las Vegas, NV. Find 세종특별자치 출장안마 the best casinos and other popular Arts & Culture 춘천 출장마사지 attractions in the area. 인천광역 출장샵 MapYRO 거제 출장샵 is the Best Casino

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

미적분과 차원

자바 로깅

apache rewrite_module 로그