전 혼자 개발했지만, 미래에 원활한 팀작업을 위해 깃 브랜치 관리를 알아두어야한다고 생각했습니다. 그래서 git flow 브랜치 관리전략에 따라 기능들을 추가해나갔습니다. git flow는 여러명의 개발자가 병렬적으로 개발하는 내용을 간단하게 머지할 수 있는 깃 브랜치 관리 전략입니다. 그리고 이슈단위로 브랜치를 관리하고, 커밋시 관련 이슈를 명시해놓아 이슈단위로 히스토리를 볼 수 있습니다.
아래 그림과 같이 브랜치 계층을 이용해 여러 기능들이 최대한 충돌없이 병합될 수 있도록 하는 방식입니다. develop에서 feature를 생성해, 이슈에 명시된 기능에 대한 개발을 진행하고, 각 기능에 대한 개발을 완료하면 코드 리뷰를 요청합니다. 코드 리뷰를 통해 PR을 승인받으면 develop 브랜치에 병합시킵니다. 진행중인 버전의 배포 기능이 모두 완료되면 master에 병합시킵니다.
Feature
: 기능 개발을 진행할 때 사용합니다.Develop
: 완전히 개발이 끝난 부분에 대해서만 Merge를 진행합니다.Release
: 배포를 준비할 때 사용합니다. QA 진행중 발생한 버그도 여기에 추가.Hot-Fix
: 배포를 진행한 후 발생한 버그를 수정해야 할 때 사용합니다.Master
: 배포시 사용합니다. 아직 배포단계에 이르지 않아 Master 브랜치에 내용이 없습니다.혼자서라도 여러명이서 같이 개발하는 상황이라고 생각하며 git-flow 브랜치 관리 전략을 사용해보니, merge, rebase, PR 등 깃에 대해 더 잘 알게 되었습니다.