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