Git-flow 정리
Git-flow 사용 이유
- 다수의 개발자가 작업을 병렬로 처리하는 것을 더 효율적으로 진행하기 위한 목적으로 사용된다.
- 개발 주기가 짧은 작업, 긴 작업, 빠르게 수정해야할 작업, 개발 전반을 다루는 작업, 배포 등 최종(최신)의 소스를 다루는 작업의 공간을 분리해 개발할 수 있다는 이점을 갖고 있다.
Git Repository
Upstream Remote Repository
- 개발자들이 공유하는 원격 저장소다.
- 최신 소스코드가 저장되어 있다.
Origin Remote Repository
- Upstream Remote Repository를 fork한 원격 개인 저장소다.
- Pull Request, Merge를 통해 Upstream Repository에 코드를 공유할 수 있다.
Local Repository
- 개발자 개인 디바이스에 저장된 개인 저장소다.
- Push를 통해 Origin Repository에 코드를 공유할 수 있다.
- Upstream Repository를 Pull 하여 최신화된 코드를 로컬로 가져올 수 있다.
Git-flow 전략
Branch 구성
- master, develop, feature, release, hotfix 브랜치를 두고 개발, 관리한다.
- master, develop 브랜치는 메인 브랜치로 항상 유지된다.
- feature, release, hotfix는 보조 브랜치로 필요 시 일정 기간 동안 사용한다.
- 보조 브랜치는 사용 목적을 이뤘으면
git branch -d <branch_name>
과 같은 명령을 통해 제거해준다.
- 보조 브랜치는 사용 목적을 이뤘으면
- master 브랜치에 출시 버전을 merge 시 –no-ff 옵션을 통해 커밋 메시지를 명시할 수 있도록 한다.
master
- 제품으로 출시될 수 있는 브랜치
develop
- 다음 출시 버전을 개발하는 브랜치
- 개발자들이 각자 작업한 기능을 develop branch를 기준으로 merge 한다.
feature
- 단위 기능을 개발하는 브랜치
- 기능 개발에 짧은 시간이 소요된다면 feature/short, 긴 시간이 소요된다면 feature/long과 같은 브랜치명으로 관리할 수 있다.
release
- 이번 출시 버전을 준비하는 브랜치
- QA를 하기 위한 목적을 가진다.
hotfix
- 출시 버전에서 발생한 버그를 수정하는 브랜치
- 배포 후 버그 발생 시 긴급 수정을 위한 목적을 가진다.
Tag 구성
- 릴리즈에 따른 배포 버전 태그를 구성해 관리한다.
Comments powered by Disqus.