Untitled

브랜치 이름 설명
Main (또는 Master) 브랜치 제품으로 출시될 수 있는 안정적인 상태를 반영합니다. 프로덕션에 배포될 수 있는 상태입니다. 사용자들이 다운로드하고 사용하는 버전은 이 브랜치에서 파생됩니다.
Develop 브랜치 새로운 기능 개발과 버그 수정 등의 개발이 이루어지는 브랜치입니다. 개발자들은 이 브랜치에서 작업하며, 개발이 완료되면 Main 브랜치로 병합됩니다.
Feature 브랜치 새로운 기능 추가를 위해 Develop 브랜치에서 파생된 브랜치입니다. 작업이 완료되면 Develop 브랜치로 병합됩니다.
Release 브랜치 다음 버전의 출시를 준비하는 브랜치입니다. 기능 개발이 완료되고 버그 수정이 이루어진 후, 해당 버전을 출시하기 위해 Main 브랜치로 병합되며, 동시에 Develop 브랜치에도 병합됩니다.
Hotfix 브랜치 긴급한 버그 수정을 위해 Main 브랜치에서 파생된 브랜치입니다. 수정이 완료되면 Main 브랜치와 Develop 브랜치 양쪽으로 병합됩니다.

GitHub Flow

GitHub Flow는 소프트웨어 개발에서 사용되는 간단하면서도 효과적인 브랜치 관리 전략 중 하나입니다. Git과 GitHub를 기반으로 하며, 릴리즈 주기를 단축시키고 지속적인 배포를 지원하기 위해 만들어졌습니다. Vincent Driessen의 Git Flow와는 달리, GitHub Flow는 단일 브랜치만 사용하는 간단한 모델로 구성되어 있습니다.

  1. Main (또는 Master) 브랜치: 제품으로 출시될 수 있는 안정적인 상태를 반영합니다. 즉, 프로덕션에 배포될 수 있는 상태를 의미합니다. 이 브랜치는 항상 배포 가능한 상태를 유지하는 것이 중요합니다.

GitHub Flow의 작업 흐름

  1. 기능 추가나 버그 수정과 같은 작업을 수행하기 위해 새로운 브랜치를 Main 브랜치에서 파생시킵니다.
  2. 해당 브랜치에서 작업을 진행하고, 커밋을 수행합니다.
  3. 작업이 완료되면 Main 브랜치로부터 새로운 Pull Request를 생성합니다.
  4. Pull Request를 통해 변경 사항을 리뷰하고, 팀원들의 검토를 거쳐 변경 사항이 Main 브랜치로 병합됩니다.
  5. Main 브랜치에 병합된 변경 사항은 배포 가능한 상태를 유지하기 때문에 언제든지 배포가 가능합니다.
  6. 필요한 경우 배포를 위해 Main 브랜치에서 릴리즈 태그를 생성하고, 배포를 진행합니다.

참고 : https://blog.hwahae.co.kr/all/tech/9507 , https://hyeo-noo.tistory.com/393