Gitflow Workflow | Atlassian Git Tutorial
MAKE 애플리케이션의 공식 릴리즈 기록과 기능 개발 기록 등을 저장하기 위해 버전 관리 도구 Git 을 사용하고 있습니다. 여러가지 Git 브랜치 전략중 Git-flow 브랜치 전략을 기본 바탕으로 사용하고 있습니다.
master
브랜치는 공식 릴리즈 기록을 저장하고, develop
브랜치는 분기 기능 개발들의 통합 지점 역할을 합니다. 또한 master
지점의 모든 커밋은 버전 번호로 태그를 지정하는 것이 편리합니다.
첫 번째 단계는 master
브랜치에서 develop
브랜치를 생성하고 서버로 푸시하는 것입니다.
git branch develop
git push -u origin develop
각각의 새로운 기능은 새로운 브랜치를 생성하여 개발해야 하며 백업 / 협업을 위해 서버로 푸시할 수 있습니다. 대신 master
브랜치에서 새로운 브랜치를 생성하는 것이 아닌 develop
브랜치에서 새로운 브랜치를 생성하여 사용합니다. 한 가지 기능 개발이 완료되면, 다시 develop
브랜치로 병합합니다. feature
브랜치는 절대로 master
브랜치와 직접적으로 상호작용하지 않습니다.
일반적으로 feature
브랜치는 가장 최신 develop
브랜치에서 생성됩니다.
git checkout develop
git checkout -b feature_branch
어떤 한 기능에 대한 개발을 완료하면, feature_branch
를 develop
브랜치에 병합합니다.
git checkout develop
git merge feature_branch
develop
브랜치가 출시를 위한 충분한 기능 개발이 완료되었다면 (또는 출시 일정이 다가오고 있다면), release
브랜치를 develop
브랜치로부터 생성합니다. 만들어진 release
브랜치에서 출시를 위한 준비를 시작합니다. 따라서 release
브랜치에 새로운 기능 개발은 추가할 수 없습니다. 단지 버그 수정, 설명서 생성 및 기타 출시 준비 작업만 수행됩니다. 출시 준비가 완료되면, release
브랜치를 master
브랜치에 병합하고 버전 정보를 태그합니다. 또한 develop
브랜치에도 병합해야 합니다.
출시 전용 브랜치를 사용하여 출시 준비를 하는 한편 다른 팀은 다음 출시 기능 개발을 진행하고 있을 수 있습니다.
release
브랜치를 만드는 것은 develop
브랜치에서 출시 시점에 맞춰 생성합니다.
git checkout develop
git checkout -b release/0.1.0
출시 준비가 완료되면, release
브랜치를 master
브랜치와 develop
브랜치에 병합하고 release
브랜치는 삭제합니다.
git checkout master
git merge release/0.1.0
git checkout develop
git merge release/0.1.0
git branch -d release/0/1/0
hotfix
브랜치는 릴리즈를 빠르게 패치하는 데 사용됩니다. hotfix
브랜치는 master
브랜치에서 생성합니다. 수정 사항이 완료되면, master
브랜치와 develop
브랜치 (또는 현재의 release
브랜치)에 병합합니다. 그리고 master
브랜치에 업데이트된 버전을 태그합니다.
git checkout master
git checkout -b hotfix_branch
수정 사항이 완료되면, release
브랜치와 비슷하게 hotfix
브랜치는 master
브랜치와 develop
브랜치 모두에 병합하고 hotfix
브랜치는 삭제합니다.
git checkout master
git merge hotfix_branch
git checkout develop
git merge hotfix_branch
git branch -D hotfix_branch
여기에서 git-flow workflow에 대해 설명했습니다.
git-flow에 대해 알아야 할 주요 사항은 다음과 같습니다.
git-flow의 전체 흐름은 다음과 같습니다.
develop
branch is created from master
release
branch is created from develop
Feature
branches are created from develop
feature
is complete it is merged into the develop
branchrelease
branch is done it is merged into develop
and master
master
is detected a hotfix
branch is created from master
hotfix
is complete it is merged to both develop
and master
잘보고갑니다!