GitFlow

CHM·2022년 6월 30일
0

Git

목록 보기
11/11

GitFlow 모델

  • 아래 브랜치를 활용하여 변경점을 관리한다.
    • master
    • develop
    • feature
    • release
    • hotfix

master

  • 실제 고객에게 릴리즈되는 브랜치
  • 모든 변경사항은 결국 master로 최종 반영되어야 함.

develop

  • 실제 개발의 중심이 되는 브랜치
  • 모든 기능 추가, 버그 수정 후 고객에게 배포 가능한 수준이 되면 develop의 내용은 master에 최종 반영된다.
  • 다음 배포할 기능 개발하는 브랜치

feature

  • 기능을 개발하는 브랜치
  • develop 브랜치로부터 분기되어 사용됨
  • 기능 개발 완료 or 스프린트 주기가 종료되면 develop 브랜치로 내용 merge후 브랜치 삭제

release

  • 배포를 준비(검증, 이슈 수정 등)하는 브랜치
  • 배포 가능한 상태가 되면 master 브랜치로 병합
  • release 브랜치에서 기능 점검 시 발견한 이슈에 대한 수정사항은 반드시 develop에도 merge 되어야한다.
  • 배포 준비가 완료되면 최종 master로 merge하고 tag를 명시해야 함.

hotfix

  • 배포한 버전에서 긴급 수정이 필요한 장애, 버그 발생 시 대응하는 브랜치
  • hotfix는 master로부터 분기되며, 이슈가 수정되면 수정사항은 master, develop 브랜치에 최종 반영되어야 함.

Git flow 실습

1. GitBash에서 ~/gitflow_test 폴더 생성

$ mkdir ~/gitflow_test
cd ~/gitflow_test

2. GitFlow 브랜치 초기화

$ git flow init

3. GitFlow - 기능 개발

$ git flow feature start [개발할 기능명]

  • 커밋을 할 파일 생성

$ vi LoginService.java

  • 커밋

$ git commit -m [커밋메시지]

  • 기능 개발 완료 : 기능 개발이 되면 develop 브랜치로 반영이 되어야 한다.

$ git flow feature finish [기능명]

4. GitFlow - 릴리즈 시작

  • 개발이 완료되면 release 브랜치를 분기해서 배포를 진행한다.

git flow release start [버전명]

  • 릴리즈 종료(develop, master 브랜치에 반영시켜줌, master에는 태그 생성)

git flow release finish [버전명]

5. GitFolw - 긴급이슈 발생 시

  • 긴급 수정 사항이 발생했을 때 hotfix 사용

$ git flow hotfix start [버전명 (1.2.1)]

  • 긴급 이슈 해결(develop, master 브랜치에 반영시켜줌, master에는 태그 생성)

$ git flow hotfix finish 1.2.1

0개의 댓글