Skip to content

branch strategy

changicho edited this page Nov 29, 2020 · 1 revision

branch strategy

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

기본

참고

tools

gitKraken & Sourcetree

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

git graph

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

our git-flow

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

  • master
  • develop

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

  • develop
  • feature/XXX

remote - master

LTS 버전을 저장하는 branch.

cloud에 배포하는 코드이다.

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

매주 목요일 develop branch에서 merge 한다.

master branch의 내용이 업데이트 되는 경우 git tag를 이용한다.

remote - develop

하루 혹은 이틀에 한번 각자 local의 develop branch들에서 날아온 PR을 merge해 갱신한다.

PR끼리 충돌이 잦을 수 있으므로 코드리뷰시 자신의 코드와 conflict 문제가 생기지 않는지 꼼꼼히 검토한다.

local - develop

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

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

local - feature

각자 개발중인 기능을 나타내는 branch이다.

모든 feature branch는 최신 상태의 develop branch에서 파생되어야 한다.

branch의 이름은 "feature/기능명"으로 구성할 수 있도록 한다.

our git-flow 시나리오

프로젝트 시작

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

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

일일 작업 개발

각자의 local-develop branch에서 개발할 feature branch를 생성한다.

feature branch에서 작업 후, 완료되었을 시 다음과 같은 순서를 따른다.

  1. 자신 local의 develop-branch를 pull해 최신으로 유지한다.
  2. local-develop와 local-feature을 merge한다.
  3. local-develop에서 remote-develop으로 PR을 보낸다. local-feature에서 따로 세부적인 branch를 생성해 작업할 수 있다. 다만 local-develop에 merge하기 전 branch를 전부 정리하도록 한다.

PR merge

remote-develop의 merge 권한은 그 주의 팀장이 갖는다.

코드리뷰를 진행한 PR만 merge할 수 있도록 한다.

각 팀원은 conflict가 발생하지 않도록 코드 리뷰를 진행한다.

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

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

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

branch 구성도

개인별 구조

Clone this wiki locally