GitHub-Flow 전략이란?

GitHub에서 제안한 간단하고 직관적인 Git 브랜치 전략이다.

브랜치를 master 브랜치와 각각의 작업을 위한 topic 브랜치로 나누어서 작업하는게 특징으로 단순성과 배포 중심을 가지고 있다.

주요 포인트는 브랜치를 작업 단위로 만들고 각 브랜치가 자체적으로 완결성을 가져 항상 배포 가능한 상태인 master 브랜치로 병합될 수 있게 관리하는 것이다.

이러한 특징으로 인해 GitHub Flow는 빠른 반복적인 개발과 배포를 가능하게 한다.

브랜치 종류

master : 항상 배포 가능한 상태를 유지하는 최종 브랜치
topic : 새로운 기능 또는 변경 사항을 구현하기 위해 master 브랜치로부터 분기하여 생성되는 브랜치

방법

주의사항: master 브랜치는 언제나 배포 가능한 상태를 유지해야 합니다.

  1. master 브랜치에서 작업을 시작하기 위한 새로운 브랜치를 분기합니다.
  2. 이때 브랜치의 이름은 작업 내용을 설명하는 방식으로 짓습니다.
  3. 새로운 브랜치에서 작업을 수행하고 작은 단위로 쪼개 커밋을 만듭니다.
  4. 작업이 완료되면 GitHub에 푸시하고 PR을 생성합니다.
  5. PR을 통한 코드리뷰 과정을 거치고 테스트가 통과하면 master 브랜치로 merge합니다.
  6. merge된 브랜치를 즉시 배포합니다.

장점

  • 간단하고 직관적이다. 새로운 기능을 위한 브랜치를 만들고 그 기능을 완성한 후에 master 브랜치로 병합하는 간단한 워크플로우 작업이기 때문이다.
  • 코드 리뷰를 통한 품질 관리. PR을 통해 팀원들의 코드를 리뷰 

단점

  • 단순한 워크 플로우를 가지고 있기 때문에 복잡한 프로젝트에 적합하지 않을 수 있다.
  • 브랜치 전략이 고정적이다. master 브랜치에서 새 브랜치를 만들고 다시 master 브랜치로 병합하는 방식을 사용하므로 다양한 브랜치 전략을 적용하기 어렵다.

언제 사용하면 좋은가?

  1. 작은 규모의 팀에서 단순한 프로젝트를 관리 할 때
  2. 빠른 반복과 개발주기를 가지며 지속적인 배포가 필요한 경우

+ Recent posts