Git 브랜치 전략

jinwook4217·2020년 8월 12일
41
post-thumbnail

Gitflow Workflow | Atlassian Git Tutorial

Git-flow Workflow

MAKE 애플리케이션의 공식 릴리즈 기록과 기능 개발 기록 등을 저장하기 위해 버전 관리 도구 Git 을 사용하고 있습니다. 여러가지 Git 브랜치 전략중 Git-flow 브랜치 전략을 기본 바탕으로 사용하고 있습니다.

How it works

https://wac-cdn.atlassian.com/dam/jcr:2bef0bef-22bc-4485-94b9-a9422f70f11c/02%20(2).svg?cdnVersion=696

Develop and Master Branches

master 브랜치는 공식 릴리즈 기록을 저장하고, develop 브랜치는 분기 기능 개발들의 통합 지점 역할을 합니다. 또한 master 지점의 모든 커밋은 버전 번호로 태그를 지정하는 것이 편리합니다.

첫 번째 단계는 master 브랜치에서 develop 브랜치를 생성하고 서버로 푸시하는 것입니다.

git branch develop
git push -u origin develop

Feature Branches

각각의 새로운 기능은 새로운 브랜치를 생성하여 개발해야 하며 백업 / 협업을 위해 서버로 푸시할 수 있습니다. 대신 master 브랜치에서 새로운 브랜치를 생성하는 것이 아닌 develop 브랜치에서 새로운 브랜치를 생성하여 사용합니다. 한 가지 기능 개발이 완료되면, 다시 develop 브랜치로 병합합니다. feature 브랜치는 절대로 master 브랜치와 직접적으로 상호작용하지 않습니다.

https://wac-cdn.atlassian.com/dam/jcr:b5259cce-6245-49f2-b89b-9871f9ee3fa4/03%20(2).svg?cdnVersion=696

일반적으로 feature 브랜치는 가장 최신 develop 브랜치에서 생성됩니다.

Creating a feature branch

git checkout develop
git checkout -b feature_branch

Finishing a feature branch

어떤 한 기능에 대한 개발을 완료하면, feature_branchdevelop 브랜치에 병합합니다.

git checkout develop
git merge feature_branch

Release Branches

https://wac-cdn.atlassian.com/dam/jcr:a9cea7b7-23c3-41a7-a4e0-affa053d9ea7/04%20(1).svg?cdnVersion=696

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 Branches

https://wac-cdn.atlassian.com/dam/jcr:61ccc620-5249-4338-be66-94d563f2843c/05%20(2).svg?cdnVersion=696

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

Summary

여기에서 git-flow workflow에 대해 설명했습니다.

git-flow에 대해 알아야 할 주요 사항은 다음과 같습니다.

  • workflow는 릴리즈 기반 소프트웨어 workflow에 적합합니다.
  • git-flow는 핫픽스 전용 채널을 제공합니다.

git-flow의 전체 흐름은 다음과 같습니다.

  1. develop branch is created from master
  2. release branch is created from develop
  3. Feature branches are created from develop
  4. When a feature is complete it is merged into the develop branch
  5. When the release branch is done it is merged into develop and master
  6. If an issue in master is detected a hotfix branch is created from master
  7. Once the hotfix is complete it is merged to both develop and master
profile
유니티 개발을 조금씩 해왔습니다.

3개의 댓글

comment-user-thumbnail
2021년 3월 22일

잘보고갑니다!

1개의 답글
comment-user-thumbnail
2021년 7월 14일

너무 도움 되었습니다 ㅎㅎ

답글 달기