GitHub Flow

GitHub Flow 는 쉽게 요약하자면, 브랜치를 하나의 base 브랜치 (main) + main 에 기능을 추가하기 위한 브랜치 (feat) 두개만으로 운영하여 훨씬 간단하지만 빠르게 수정 배포할 수 있는 전략입니다.

다음 그림은 GitHub Workflow 를 표현한 그림입니다.

Git Flow 와 비교하였을 때 훨씬 간단하죠? Git Flow는 다양한 종류의 브랜치를 사용하는 반면, GitHub Flow는 단일 브랜치 (master) 를 사용합니다.

배포는 Git Flow 와 동일하게 master 브랜치에서 수행되지만, 그 외의 release, hotfix 등의 다른 브랜치들 대신 하나의 feature branch 만이 존재합니다.

GitHub Flow 의 흐름 또한 그림에서 보시는 바와 같이 매우 간단합니다.

  1. main 브랜치는 배포를 위한 소스코드를 관리하는 브랜치입니다. 신규 기능 개발이 필요할 때, commit convention에 맞춰 브랜치를 따서 작업을 진행합니다.
  2. 태스크가 완료되면, Pull Request 를 생성하여 Review 를 요청합니다. 이 때의 타겟은 main 브랜치입니다.
  3. 리뷰가 완료되고 피드백이 모두 반영되면 해당 feat 브랜치를 main 브랜치로 Merge 합니다.

<aside>

GitHub Flow는 단순하며 지속적인 배포를 강조하며, release 브랜치에서 배포를 수행합니다.

</aside>