Github Flow

github flow는 git flow의 브랜치 전략이 너무 복잡하고 적용하기 어렵다고 해서 생겨난 브랜치 전략입니다.

github flow는 master 브랜치 하나만을 가지고 진행하는 방식입니다.

master 브랜치는 어떤 기능이 구현되든, 오류가 수정되든 모두 master에 머지되어 항상 update된 상태를 유지합니다.

아래 흐름은 github flow의 흐름을 보여주는 그림입니다.

github flow의 과정

  1. master 브랜치에서 개발이 시작된다.
  2. 기능 구현이나 버그가 발생하면 issue를 작성한다.
  3. 팀원들이 issue 해결을 위해 master 브랜치에서 생성한 feature/{구현기능} 브랜치에서 개발을 하고 commit log를 작성한다.
  4. push를 하면 pull request를 날릴 수 있다.
  5. pull request를 통해 팀원들 간의 피드백, 버그 찾는 과정이 진행된다. release 브랜치가 없으므로 이 과정이 탄탄하게 진행되어야 한다.
  6. 모든 리뷰가 이루어지면, merge하기 전에 배포를 통해 최종 테스트를 진행한다.
  7. 테스트까지 진행되면 master 브랜치에 머지한다.

github flow는 시시각각 master에 머지될 때마다 배포가 이루어지는 것이 좋습니다.

따라서 CI/CD를 통한 배포 자동화를 적용하는 것이 좋습니다.

브랜치 전략이 단순해 master 브랜치에서 pull 하고, 기능 구현하고, 머지하는 일의 반복입니다.

하지만 pull request에서 팀원간의 충분한 리뷰와 피드백이 진행되지 않으면 배포된 자체에서 버그가 발생할 수 있으므로 주의해야 합니다.

출처 : https://tecoble.techcourse.co.kr/post/2021-07-15-git-branch/