inblog logo
|
vosw1
    Git&Github

    Git Flow 적용하기

    송민경's avatar
    송민경
    Oct 22, 2024
    Git Flow 적용하기

    1. git flow 초기화하기

    git flow init // 프로젝트 디렉토리에서 초기화
    notion image
     

    2. 기본값 설정하기

    • enter 치면 다 추가됨
    notion image
     

    3. 각 브랜치

    • Production Releases Branch (master)
      • 최종 제품이 배포되는 브랜치
      • 안정된 버전의 코드를 유지하며, 이 브랜치에서 직접 작업하지 않음
      • 특징
        • 이 브랜치에는 항상 안정적인 코드만 존재
        • 주로 태그를 달아서 특정 버전을 관리
    • Next Release Development Branch (develop)
      • 새로운 기능 및 변경 사항을 개발하는 브랜치
      • 다음 릴리스의 베이스가 됨
      • 특징
        • 여러 기능 브랜치(feature branches)에서 병합된 코드가 이곳에 모임
        • 안정성이 검증된 후에 master로 병합
    • Feature Branches (feature/)
      • 새로운 기능을 개발할 때 사용하는 브랜치
      • 특징
        • develop브랜치에서 분기하여 작업을 진행
        • 기능 개발이 완료되면 다시 develop브랜치로 병합
        • 브랜치 이름은 feature/기능명 형식으로 작성
    • Bugfix Branches (bugfix/)
      • develop브랜치에서 발견된 버그를 수정할 때 사용하는 브랜치
      • 특징
        • 기능 수정이 필요할 때 develop에서 분기하여 작업
        • 수정이 완료되면 다시 develop으로 병합
        • 브랜치 이름은 bugfix/오류명 형식으로 작성
    • Release Branches (release/)
      • 새로운 릴리스를 준비하는 브랜치
      • 기능 개발이 완료되고 릴리스가 준비되면 생성
      • 특징
        • 버그 수정, 최종 테스트 및 문서화 작업을 진행
        • 릴리스 준비가 완료되면 master로 병합이후 develop에도 병합되어 다음 개발을 이어감
        • 브랜치 이름은 release/버전명 형식으로 작성됩니다.
    • Hotfix Branches (hotfix/)
      • 프로덕션(배포)에서 발견된 긴급한 버그를 수정하는 브랜치
      • 특징
        • master에서 직접 분기하여 긴급 수정 작업을 진행
        • 수정이 완료되면 master와 develop모두에 병합하여 두 브랜치의 일관성을 유지
        • 브랜치 이름은 hotfix/수정명 형식으로 작성
    • Support Branches (support/)
      • 특정 버전의 소프트웨어에 대한 지원을 위해 생성되는 브랜치
      • 보통 구 버전의 소프트웨어 유지보수를 위해 사용
      • 특징
        • 주로 긴급 수정이나 버그 수정을 위해 사용
        • 특정 버전의 안정성을 유지하는 데 도움을 줌
        • 브랜치 이름은 support/버전명 형식으로 작성
    • Version Tag Prefix
      • 태그를 관리하기 위한 접두사
      • 비워두면 기본값으로 사용
    • 특징
      • 주로 배포 시 사용되는 태그에 적용되며, 특정 버전을 식별하는 데 도움을 줌
     

    4. 브랜치 확인하기

    git branch
    notion image
     

    5. 기능 브랜치 사용하기

    • 기능 브랜치 생성
    git flow feature start <feature-name>
    • 푸쉬
    git add . git commit -m "기능 설명" git push origin feature/<feature-name>
    • 기능 브랜치 종료
      • 기능 브랜치가 develop브랜치에 병합되고 자동으로 삭제
      • git flow feature finish <feature-name>
      • 기능 브랜치를 삭제하지 않고 병합
        • develop 브랜치로 돌아옴
        • git checkout develop
        • develop 브랜치에 병합
        • git merge --no-ff feature/<feature-name>
        • develop 푸쉬
        • git push origin develop
         

    6. 기능 수정하기

    • 버그 수정 브랜치 생성
    git flow bugfix start <bugfix-name>
    • 버그 수정
    git add . git commit -m "버그 수정: 로그인 오류 수정"
    • 삭제하지 않고 병합
    git flow bugfix finish <bugfix-name> --no-delete
     

    배포하기

    • develop 브랜치에서 Release 브랜치 생성
    git flow release start <release-version>
    • Release 브랜치에서 최종 수정
      • Release 브랜치로 이동한 후, 필요한 최종 수정(문서화, 버그 수정 등)을 진행
    git add . git commit -m "최종 수정 및 버전 준비"
    • Release 브랜치를 master 브랜치와 develop 브랜치에 병합
    git flow release finish <release-version>
    • 배포 후 태그 추가
      • 자동으로 master 브랜치에 태그를 추가
    • 변경된 내용을 master 브랜치와 develop 브랜치에 모두 푸쉬
    git push origin master git push origin develop git push --tags
    Share article

    vosw1

    RSS·Powered by Inblog