ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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가 끝나면, developmaster 브랜치로 병합

    • 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
Designed by Tistory.