[Github] Git 브랜치의 종류 및 사용법

김효인·2021년 5월 16일

GIT Branch 종류 (5가지)

Gitflow Workflow에서는 항상 유지되는 메인 브랜치들(master,develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature,release,hotfix)을 포함하여 총 5가지의 브랜치를 사용합니다.

Master Branch

제품으로 출시될 수 있는 브랜치
배포(Release) 이력을 관리하기 위해 사용합니다.
즉, 배포 가능한 상태만 관리하는 것입니다.

Develop Branch

다음 출시 버전을 개발하는 브랜치
기능 개발을 위한 브랜치들을 병합하기 위해 사용합니다.
즉, 모든 기능이 추가되고 버그가 수정되어 배포 가능한 안정적인 상태라면 develop 브랜치를 'master' 브랜치에 병합(merge)합니다.
대부분을 이 브랜치를 기반으로 개발을 진행합니다.

Feature branch

기능을 개발하는 브랜치
새로운 기능 개발 및 버그 수정이 필요할 때마다 'develop'브랜치로부터 분기합니다. 기본적으로 공유할 필요가 없기 때문에, 자신의 로컬 저장소에서 관리합니다.
1. develop 브랜치에서 새로운 기능에 대한 feature 브랜치를 분기함
2. 새로운 기능에 대한 작업을 수행
3. 작업이 끝나면 develop 브랜치로 병합(merge)
4. 더 이상 필요하지 않은 feature 브랜치는 삭제
5. 새로운 기능에 대한 feature 브랜치를 중앙 원격 저장소에 올림(push)

<feature 브랜치 생성 및 종료 과정>

// feature 브랜치(feature/login)를 'develop' 브랜치('master' 브랜치에서 따는 것이 아니다!)에서 분기
$ git checkout -b feature/login develop

/* ~ 새로운 기능에 대한 작업 수행 ~ */

/* feature 브랜치에서 모든 작업이 끝나면 */
// 'develop' 브랜치로 이동한다.
$ git checkout develop
// 'develop' 브랜치에 feature/login 브랜치 내용을 병합(merge)한다.
# --no-ff 옵션: 아래에 추가 설명
$ git merge --no-ff feature/login
// -d 옵션: feature/login에 해당하는 브랜치를 삭제한다.
$ git branch -d feature/login
// 'develop' 브랜치를 원격 중앙 저장소에 올린다.
$ git push origin develop
https://gmlwjd9405.github.io/2018/05/11/types-of-git-branch.html

Release Branch

이번 출시 버전을 준비하는 브랜치
배포를 위한 전용 브랜치를 사용함으로써 한 팀이 해당 배포를 준비하는 동안 다른팀은 다음 배포를 위한 기능 개발을 계속할 수 있습니다.
즉, 딱딱 끊어지는 개발 단계를 정의하기에 아주 좋습니다.

Hotfix Branch

출시 버전에서 발생한 버그를 수정하는 브랜치
배포한 버전에 긴급하게 수정을 해야할 필요가 있을경우, 'master'브랜치에서 분기하는 브랜치입니다.

profile
내가 보려고 만든 velog

1개의 댓글

comment-user-thumbnail
2022년 8월 18일

feature 브랜치같은 경우 공유하지 않기때문에 자신의 로컬 저장소에서 관리한다고 적혀있는데
다음 '새로운 기능에 대한 feature 브랜치를 중앙 원격 저장소에 올림(push)' 문장은 무슨 의미 일까요?

답글 달기