-
Gitflow 워크플로개발 관련/협업 2020. 9. 24. 01:36
Gitflow 워크플로
프로젝트 릴리즈를 중심으로 설계된 엄격한 branch 모델
대규모 프로젝트를 관리하기위한 강력한 프레임워크 제공
예정된 릴리즈 주기가 있는 프로젝트에 이상적전반적 흐름을 살펴보자면,
1. master 브랜치 → develop 브랜치 생성
- 1개의 master 브랜치대신, 프로젝트 히스토리를 기록하기 위해 2개의 브랜치 사용
- master: 공식적인 릴리즈 히스토리 저장
- develop: features에 대해 통합(integration) 브랜치 역할
- 개발자가 로컬에서 빈 develop 브랜치를 생성하고, 서버로 푸시
- git branch develop git push -u origin develop → -u: 최초에 한 번만 저장소명과 브랜치명을 입력함 (이후 생략)
2. develop 브랜치 → release 브랜치 생성
- develop 브랜치에 릴리즈하기 위한 충분한 features이 존재한다면, develop 브랜치에서 release 브랜치로 나눠진다
- git checkout develop git checkout -b release/0.1.0 → -b: 브랜치 생성과 체크아웃 한번에!
3. develop 브랜치 → Feature 브랜치 생성
- 새로운 feature는 (백업/협업을 위해 중심 repository에 푸시될 수 있는) 자체 branch에 존재해야한다.
- git checkout develop git checkout -b feature_branch
4. feature가 완성되면, develop 브랜치에 병합(merge)
- master 브랜치와 직접적으로 절대 교류 X
- [feature 브랜치 + develop 브랜치 결합] (→ Feature 브랜치 워크플로우) + 최신 develop 브랜치에서 Feature 브랜치 생성
- git checkout develop git merge feature_branch → develop 브랜치에 feature_branch를 병합
5. release 브랜치가 끝나면, develop 브랜치와 master 브랜치로 병합
- 릴리즈 출시 준비가 되면, release 브랜치는 develop 브랜치로 다시 병합
- release 브랜치는 버전 번호 태그와 함께 master 브랜치로 병합
- 병합 후, release 브랜치는 삭제됨
- git checkout master git merge release/0.1.0
6. master 브랜치에서 오류가 발견되면, master 브랜치 → hotfix 브랜치 생성
- hotfix 브랜치는 프로덕션 릴리즈를 빠르게 패치하는데 사용
- git checkout master git checkout -b hotfix_branch
7. hotfix가 끝나면, develop과 master 브랜치로 병합
- git checkout develop git merge hotfix_branch
- git checkout master git merge hotfix_branch
- git branch -d hotfix_branch
예. feature 브랜치 플로
git checkout master
#master 브랜치 → develop 브랜치, feature 브랜치 생성
git checkout -b develop
git checkout -b feature_branch
# feature 브랜치에서 작업
git checkout develop
# feature 브랜치 → develop 브랜치 병합
git merge feature_branch
git checkout master
# develop 브랜치 → master 브랜치 병합
git merge develop
# feature 브랜치 삭제
git branch -d feature_branch예. feature, release 워크플로 + hotfix 예제
# master 브랜치 → hotfix 브랜치 생성
git checkout master
git checkout -b hotfix_branch
# 작업이 끝나면, hotfix 브랜치에 커밋 추가
git checkout develop
# hotfix 브랜치 → develop 브랜치 병합
git merge hotfix_branch
git checkout master
# hotfix 브랜치 → master 브랜치 병합
git merge hotfix_branch
Gitflow 워크플로는 release 기반 소프트웨어 워크플로보다 훌륭하다.
Gitflow는 프로덕션 hotfix를 위한 전용 채널을 제공한다.
'개발 관련 > 협업' 카테고리의 다른 글
GIT Fork Vs. Clone (0) 2021.03.01 Repository 셋업 (0) 2020.09.25 Branch Workflow (0) 2020.09.25 Git 101 (0) 2020.09.23 - 1개의 master 브랜치대신, 프로젝트 히스토리를 기록하기 위해 2개의 브랜치 사용