Skip to content

branch strategy

Changi Cho edited this page Nov 7, 2019 · 5 revisions

branch strategy

gitlab flow를 base로 프로젝트에 적합하게 수정함.

모든 규칙은 서로를 배려하고 이해하기 위해 존재한다!

기본

참고

tools

gitKraken & Sourcetree

각 branch 및 commit의 상태를 시각화 하기 위해 팀원은 "GitKraken", 혹은 "Sourcetree"를 사용한다.

git graph

vsCode용 확장 프로그램인 "git graph"를 사용하는 것도 지향한다.

our git-flow

remote 저장소의 branch 구성은 다음과 같다

  • master
  • develop
  • cooperation branch
    • 2ssue
    • changicho
    • leecoders
    • ocy1011

diagram

              master  →  ncloude (배포서버)
                 ↑
              develop
    ↗↙     ↑↓       ↑↓     ↖↘
co-op    co-op    co-op    co-op
branch1  branch2  branch3  branch4

master

LTS 버전을 저장하는 branch

일주일에 최소 한번 이상 develop branch에서 merge 한다.

master branch 가 갱신된 경우 배포 서버도 갱신된다.

develop

개발이 완료 된 feature 들을 한꺼번에 모아놓은 branch.

가장 merge가 활발하게 일어나는 branch이다.

하루에 한번 develop-nickname branch들에서 날아온 PR을 merge해 갱신한다.

PR끼리 충돌이 잦을 수 있다.

cooperation branch

각 팀원 별로 프로젝트를 작업하는 branch.

develop branch가 merge되어 갱신된 경우 pull로 최신 상태로 업데이트 한 뒤 작업한다.

develop branch와 충돌이 잦을 수 있다.

our git-flow 시나리오

프로젝트 시작

프로젝트 초기 구성이 완료된 master branch에서 develop branch를 생성한다.

develop branch에서 각 팀원의 cooperation branch를 생성한다.

각 팀원은 remote 저장소에서, 자신의 branch만 --single-branch 옵션으로 clone한다.

일일 작업 개발

각자의 local에서 작업 후, remote의 자신 branch로 push 한다.

local에서 따로 feature branch를 생성해 작업할 수 있다.

하루 기능이 완료된 후 develop branch에 작업 내용을 갱신한다.

(feature branch의 merge 포함)

local develop branch에서 remote develop branch에 Pull Request를 날린다.

PR merge

각 기능을 개발하며 충돌이 날 수 있으므로 코드의 모듈화를 통해 충돌을 예방하는 전략을 사용한다.

충돌이 났을 경우, 충돌이 난 인원끼리 모여 충돌 부분을 개선한다.

공통적으로 사용 및 수정하는 파일의 경우는 PR을 주기적으로 날리고, merge할 수 있다.