Gitflow Workflow[1]

이서현·2021년 4월 9일
0

git 기본 사용법은 요기에서!
-> Git 정리하기

이번 캡스톤 디자인에서 사용해 본 git workflow 정리

  1. Git Branch 정리
  2. Git Workflow 정리

1. Git Branch 정리


Git flow 에는 5가지 branch가 존재한다.
Main branch - master, develop
Sub branch - feature, hotfix, release

1.1 master branch

제품으로 출시될 수 있는 브랜치이다. 기준이 되는 브랜치로 배포가 가능한 상태만을 관리한다.

1.2 develop branch

다음 출시 버전을 개발하는 브랜치이다. 기능을 구현하면 develop branch로 merge한다.

1.3 feature branch

기능 단위로 개발하는 브랜치이다. 기능 개발을 완료하면 develop branch로 merge한다. 기능을 개발하는 브랜치로 공유할 필요가 없다. 자신의 로컬 레파지토리에서 관리한다.

1.3.1 feature branch 생성 및 삭제 과정
위 사진처럼 develop 브랜치에서 분기하고 기능 개발은 한다.

git checkout -b feature/login develop

기능 개발이 끝나면 develop 브랜치에 merge하면 된다.
새로운 feature은 원격 중앙 저장소에 push한다.
*--no-ff 옵션은 새로운 커밋 객체를 만들어서 develop 브랜치에 merge하는 법이다.

git checkout develop
git merge --no-ff feature/login
git push origin develop

필요없는 feature 브랜치는 삭제한다.

git branch -d feature/login

1.3.2 feature branch name rule
브랜치 이름은 feature/{기능 명}이어야 하고
master, develop, release-(RB_), or hotfix- 제외한다.

1.4 release branch

이번 출시 버전을 준비하는 브랜치이다. master 브랜치로 보내기 전에 QA를 시행하기 위해 생성한다. 배포가 가능하면 master 브랜치에 merge하고 버전 테그를 추가한다. release branch 버그 수정 사항은 master, develop 브랜치에 merge 해야 한다.

1.4.1 release branch 생성 및 삭제

git checkout -b release-1.2 develop
git checkout master
git merge --no-ff release-1.2

// merge한 commit에 release version tag를 부여
git tag -a 1.2

git checkout develop
git merge --no-ff release-1.2
git branch -d release-1.2

develop 브랜치에서 분기하고 master와 develop 브랜치에 merge한다.

1.4.2 release branch name rule

브랜치 이름은 release-{버전}

1.5 hotfix branch

출시 버전에서 발생한 버그를 수정하는 브랜치
배포한 버전에서 수정할 것이 있을 때 master 브랜치에서 분기하는 브랜치이다. develop 브랜치에서 수정하고 배포 가능한 버전으로 만들라면 시간이 오래 걸리고 안정성도 보장할 수 없다. 바로 배포가 가능한 master 브랜치에서 브랜치를 하나 만들어서 수정 후 다시 master 브랜치에 병합하여 배포한다.

1.5.1 hotfix branch 사용법

git checkout -b hotfix-1.2.1 master

git checkout master
git merge --no-ff hotfix-1.2.1
git tag -a 1.2.1

// develop branch에도 merge해야 한다.
git checkout develop
git merge --no-ff hotfix-1.2.1

1.5.2 hotfix branch name rule

hotfix-*

Reference

우아한 형제들 기술 블로그 - 우린 Git-flow를 사용하고 있어요
[GitHub] Git 브랜치의 종류 및 사용법 (5가지)

profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글