git flow

js·2022년 3월 30일
0
post-thumbnail

git flow란?

git 프로젝트에 있어서 널리 쓰이는 방법론 혹은 전략

5개의 branch

masterdevelopfeaturereleasehotfix
제품을 배포하는 브랜치기능들을 전부 합한 branch단위 기능 branchmaster에 가기전 QA를 하기 위한 branchmaster에서 버그가 발생 할때 긴급 수정하는 branch

git-flow-avh

git flow를 손쉽게 적용할 수 있도록 만든 라이브러리

git flow cheatsheet

git flow 예시

혼자 하는 process

// develop 브랜치 생성
git flow init

// feature 시작 && 종료 
git flow feature start '브랜치명'
git flow feature finish '브랜치명'

// release의 브랜치명은 보통 V0.0.1과 같이 버전으로 지정
git flow release start '브랜치명'
git flow release finish '브랜치명'

// 로컬 develop에서 리모트 develop로 푸쉬 && 첫 푸쉬는 upstreamset 옵션 적용
git push -u origin develop

// main에도 푸쉬 
git push origin main 

// tag 조회 && 푸쉬
git tag
git push --tags

팀 단위의 process

팀장

1. team-fizzbuzz라는 repo를 생성 후 clone

2. fizzbuzz.py라는 작업물을 생성 후 push

3. 팀원이 pull request, issue를 완료 하면 reviewers, labels 등을 설정해준다.

4. 팀원이 올바르게 수정작업을 하였으면 pull request 탭 > files changed에서 컨펌처리 (viewed 버튼 체크후 Review changes> approve)

5. 컨펌처리 하면 merge 버튼이 나오고 클릭하면 merge 완료!


6. git pull origin develop

팀장은 본인 develop branch이므로 그냥 pull 하면 된다.

작업자 팀원

1. team-fizzbuzz repo를 fork && 작업 && remote develop에 push

  • issues 탭의 issue 작성 (팀원이 작업을 하기전에 어떤일을 하겠다고 작성)

=> issue 넘버가 생성되는데 ex) #1

=> 아래와 같이 issue 넘버를 pull request의 message에 작성하면 된다.

  • fork한 뒤 로컬에 clone 해보면 branch가 main만 존재한다. 즉, fork는 상태만 복제하므로 develop branch는 아직 존재하지 않는다.

  • git flow init 하면 팀장이 작업했던 develp branch와 fizzbuzz.py가 보여진다 !!!

  • git flow feature start && 작업 && finish 해준 뒤 git push -u origin develop

2. 팀장에게 pull-request

  • 아래와 같이 팀장에게 작업한것을 컨펌 받을 수 있는 compare & pull request 버튼이 보여진다

  • 버튼을 누르면 팀장의 team-fizzbuzz repo로 가서 pull request를 작성하게 된다

3. 수정사항 작업

  • 리뷰어가 수정을 요청한 항목에 대해 작업을 한다
  • git add, commit, push 한다
  • commit 메시지가 pull request탭 > conversations에 올라간다
  • 해결 했으니 아래와 같이 resolve 처리하자!

작업자 제외한 나머지 팀원

팀장의 develop가 변경되었으므로 로컬 develop를 최신화 한다.
fetch + merge === pull.

git remote add upstream '팀장 git 주소'

1. fetch로 최신화

fetch시 팀장의 develop은 FETCH_HEAD라는 임시 branch에 담겨진다

git fetch upstream develop

FETCH_HEAD를 merge 하면 로컬에 반영이 된다

git merge FETCH_HEAD

2. pull로 최신화

git pull upstream develop

리뷰어

pull request 탭 > files changed 항목에서 코멘트를 남기면 된다.

팀원이 수정해야할 사항이 있을 경우 request changes 항목을 선택하자!

0개의 댓글