git 프로젝트에 있어서 널리 쓰이는 방법론 혹은 전략
master | develop | feature | release | hotfix |
---|---|---|---|---|
제품을 배포하는 브랜치 | 기능들을 전부 합한 branch | 단위 기능 branch | master에 가기전 QA를 하기 위한 branch | master에서 버그가 발생 할때 긴급 수정하는 branch |
git flow를 손쉽게 적용할 수 있도록 만든 라이브러리
// 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
팀장
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
=> 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
3. 수정사항 작업
작업자 제외한 나머지 팀원
팀장의 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 항목을 선택하자!