Home [Git] Git-flow 정리
Post
Cancel

[Git] Git-flow 정리

Git-flow 정리

Git-flow 사용 이유

  • 다수의 개발자가 작업을 병렬로 처리하는 것을 더 효율적으로 진행하기 위한 목적으로 사용된다.
  • 개발 주기가 짧은 작업, 긴 작업, 빠르게 수정해야할 작업, 개발 전반을 다루는 작업, 배포 등 최종(최신)의 소스를 다루는 작업의 공간을 분리해 개발할 수 있다는 이점을 갖고 있다.

Git Repository

Upstream Remote Repository

  • 개발자들이 공유하는 원격 저장소다.
  • 최신 소스코드가 저장되어 있다.

Origin Remote Repository

  • Upstream Remote Repository를 fork한 원격 개인 저장소다.
  • Pull Request, Merge를 통해 Upstream Repository에 코드를 공유할 수 있다.

Local Repository

  • 개발자 개인 디바이스에 저장된 개인 저장소다.
  • Push를 통해 Origin Repository에 코드를 공유할 수 있다.
  • Upstream Repository를 Pull 하여 최신화된 코드를 로컬로 가져올 수 있다.

Git-flow 전략

Branch 구성

  • master, develop, feature, release, hotfix 브랜치를 두고 개발, 관리한다.
  • master, develop 브랜치는 메인 브랜치로 항상 유지된다.
  • feature, release, hotfix는 보조 브랜치로 필요 시 일정 기간 동안 사용한다.
    • 보조 브랜치는 사용 목적을 이뤘으면 git branch -d <branch_name>과 같은 명령을 통해 제거해준다.
  • master 브랜치에 출시 버전을 merge 시 –no-ff 옵션을 통해 커밋 메시지를 명시할 수 있도록 한다.

master

  • 제품으로 출시될 수 있는 브랜치

develop

  • 다음 출시 버전을 개발하는 브랜치
  • 개발자들이 각자 작업한 기능을 develop branch를 기준으로 merge 한다.

feature

  • 단위 기능을 개발하는 브랜치
  • 기능 개발에 짧은 시간이 소요된다면 feature/short, 긴 시간이 소요된다면 feature/long과 같은 브랜치명으로 관리할 수 있다.

release

  • 이번 출시 버전을 준비하는 브랜치
  • QA를 하기 위한 목적을 가진다.

hotfix

  • 출시 버전에서 발생한 버그를 수정하는 브랜치
  • 배포 후 버그 발생 시 긴급 수정을 위한 목적을 가진다.

Tag 구성

  • 릴리즈에 따른 배포 버전 태그를 구성해 관리한다.

참고 자료

This post is licensed under younghwani by the author.

[OS] 운영체제 - 병행제어 5

[Git] Git 정리

Comments powered by Disqus.