[Git] Git 브랜치 & Git-Flow

Donghyun Kim·2022년 2월 21일
0

✔ Git 브랜치

• Git 브랜치란?

Git을 이용하여 버전 관리를 하고 백업을 수행하는 기능뿐만 아니라 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 분산 개발 기능이다. 각각 독립적인 작업 영역 안에서 하나의 새로운 버전을 만들어 낼 수 있다.

  • 기본적인 Git 브랜치 분산 개발 과정
  1. master branch를 checkout 합니다.
  2. feature branch를 각자 만든다.
  3. feature branch에서 각자 맡은 기능을 개발한다.
  4. 개발이 끝나면 commit 한다.
  5. feature branch를 master/develop branch와 병합한다(merge).

• Git 브랜치 워크플로우

Git 브랜치 전략을 사용하면서 어떠한 방법으로 브랜치들을 관리하고 사용할지는 팀 단위에서 브랜치 사용 전략을 정하기 나름인데 이 전략들을 조금 더 체계화한 룰을 워크플로우(Workflow)라고 한다. 워크플로우 종류로는 Centralized Workflow, Feature Branch Workflow, Github-flow Workflow, Git-flow Workflow, Forking Workflow 등이 있다.

✔ Git-flow

• Git-flow 란?

Git-flow 란 5가지의 브랜치를 이용해서 저장소를 운영하는 Git 브랜치 전략 중 대표적인 워크플로우 모델 중 하나이다. 5가지 중 항시 유지되는 메인 브랜치 master, develop 2가지와 merge 되면 사라지는 보조 브랜치 feature, release, hotfix 3가지로 구성된다.

  • master : 라이브 서버에 제품으로 출시되는 브랜치.
  • develop : 다음 출시 버전을 대비하여 개발하는 브랜치.
  • feature : 기능 개발 브랜치. develop 브랜치에 들어간다.
  • release : 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트를 진행하고 master 브랜치로 합친다.
  • hotfix : master 브랜치에서 발생한 버그를 수정하는 브랜치.

💬 git-flow 설치/사용법 및 관련 명령어 링크

• Git-flow 개발 프로세스

1. 신규 기능 개발

개발자는 develop 브랜치로부터 본인이 신규 개발할 기능을 위한 feature 브랜치를 생성한다. feature 브랜치에서 기능을 완성하면 develop 브랜치에 merge를 진행하게 된다.

2. 라이브 서버 배포

feature 브랜치들이 모두 develop 브랜치에 merge 되었다면 QA와 테스트를 위해 release 브랜치를 생성한다. release 브랜치를 통해 오류가 확인된다면 release 브랜치 내에서 수정을 진행한다. QA와 테스트를 모두 통과했다면, 배포를 위해 release 브랜치를 master 브랜치 쪽으로 merge하며, 만일 release 브랜치 내부에서 오류 수정이 진행되었을 경우 동기화를 위해 develop 브랜치 쪽에도 merge를 진행한다.

3. 배포 후 유지보수

만일 배포된 라이브 서버(master)에서 버그가 발생된다면, hotfix 브랜치를 생성하여 버그 픽스를 진행하고, 종료된 버그 픽스를 masterdevelop 양 쪽에 merge하여 동기화 시킨다.

❗❕ Git-flow 활용 협업 흐름

  1. 팀 프로젝트 원격 저장소를 Github에 생성한다. (New Repository)
  2. Git-flow를 적용한다. (master/devlop branch)
  3. A 팀원의 개발 과정
    1) A가 별도의 feature brach를 생성 후 해당 branch에서 개발 작업을 수행한다.
    2) 개발 과정에서 commit으로 변경 내역을 저장하고 해당 branch의 원격저장소에 push하여 변경 내역을 업로드한다.
    3) 해당 feature branch에서의 한 단위의 기능 개발을 마친 후 devlop branch와 merge 한다.
    4) 성공적인 merge 후 해당 feature branch를 삭제한다.
    5) pull request를 통해 개발 완료된 기능에 대하여 코드 리뷰를 요청한다.
    6) 별 다른 이슈 없이 팀원이 OK하면 최종 반영 및 검토 끝
  4. B 팀원의 개발 과정
    1) A가 새로 개발하여 갱신한 develop branch를 B의 작업 feature branch에 pull한다.
    2) 최신버전으로 갱신된 B의 작업 feature branch에서 B가 개발할 기능 개발을 계속해서 수행한다.
    3) A의 2) ~ 6) 내용과 동일하게 반복 작업하여준다.
  5. 구현 단계의 완료 시점 까지 위의 과정을 기반으로 각 개발자들이 작업을 수행한다.

GitFlow 사용방법
https://inma.tistory.com/112

✔ 참고자료

profile
"Hello World"

0개의 댓글