-
배포
master
브랜치- 먼저 배포했거나 배포 준비(production-ready)된 코드는
origin/master
에 두고 관리한다. - master 브랜치에 병합한다는 것은 새버전을 배포한다는 것을 의미한다.
master
브랜치에 커밋될 때 git hook 스크립트를 걸어서 자동으로 빌드하여 운영서버로 배포하는 형식을 취한다.
- 먼저 배포했거나 배포 준비(production-ready)된 코드는
-
개발
develop
브랜치- 배포하기 위해 개발하는 코드는
origin/develop
에서 관리한다. 프로젝트를 진행하는 개발자들이 함께 보며 업무를 진행하는 브랜치이며 가장 역동적인 브랜치라고 할 수 있다. develop 브랜치 코드가 안정화되고 배포할 준비가 되면
master`로 병합하고 배포 버전으로 태그를 단다.
- 배포하기 위해 개발하는 코드는
-
기능
feature
브랜치- 시작 브랜치 :
develop
- 병합 대상 브랜치 :
develop
- 브랜치 이름 규칙 :
master
,develop
,release-
,hotfix
를 제외한 모든 이름 - 기능
feature
브랜치는 배포하려고 하는 기능을 개발하는 브랜치이다. 기능을 개발하기 시작할 때는 언제 배포할 수 있을지 알 수 없다. - 프로젝트를 진행하면서 애자일 방법론을 도입했다면, 스프린트 기간 동안 개발해야할 기능이라면 스프린트 기간 동안 개발해야할 브랜치를 말한다.
- 기능
feature
브랜치는 그 기능을 다 완성할 때까지 유지하고 있다가 다 완성되면develop
브랜치로 병합된다.- gitflow이용시
feature/{branch-name}
형식 - 이슈 추적 이용시
feature/{issue-number}-{feature-name}
형식- EX)
feature/1-init-project
,feature/2-build-gradle-script-write
- EX)
- gitflow이용시
- 시작 브랜치 :
-
출시
release
브랜치- 시작 브랜치 :
develop
- 병합 대상 브랜치 :
develop
,master
- 브랜치 이름 규칙 :
release-*
- 출시
release
브랜치는 실제 배포할 상태가 된 경우에 생성하는 브랜치이다.master
브랜치로 통해 배포하기로 했으므로 먼저 출시release
브랜치를master
브랜치로 병합한다. - 나중에 이 배포 버전을 찾기 쉽도록 태그를 만들어 현재 병합되는 커밋을 가리키도록 한다.
- 이때 배포된 기능에 배포된 기능에 반영할 수 있도록 개발
develop
브랜치에도 함께 병합한다.
- 시작 브랜치 :
-
긴급 수정
hotfix
브랜치- 시작 브랜치 :
master
- 병합 대상 브랜치 :
develop
,master
- 브랜치 이름 규칙 :
hotfix-*
- 미리 계획되지 않은 배포를 위한 브랜치이다. 기본적인 동작 방식을 출시
release
브랜치와 비슷하다. - 이미 배포한 운영버전에서 발생한 문제를 해결하기 위해 만든다.
- 운영 버전에 생긴 치명적인 버그는 즉시 해결해야하기 때문에 문제가 생기면 마스터
master
브랜치에 만들어둔 태그tag
로부터 긴급수정hotfix
브랜치를 생성한다.
- 시작 브랜치 :