Github Flow
Github flow
배포가 빈번하게 발생하는 프로젝트에 어울리는 브랜치 기반의 워크 플로우다.

Github Flow
작업 흐름
master브랜치는 항상 즉시 배포가 가능한 상태를 유지한다- 새로운 작업을 시작할 때는 master 브랜치로부터 새로운 브랜치를 생성한다.
- 원격 브랜치에 코드를 수시로 푸시한다
- 피드백이나 도움이 필요할 경우, 혹은 작업이 완료된 경우
Pull Request를 생성한다 - 작업한 내용에 대한 리뷰가 완료되면
master브랜치에merge한다 master에merge가 되면 즉시 배포를 진행한다
규칙
master브랜치는 항상 배포가 가능한 상태를 유지해야한다master브랜치에 버그가 있을 경우HEAD를 이전으로 되돌린다- 테스트 코드가 없거나 실패한 코드는
master브랜치에merge하지 않는것을 원칙으로 한다
- 새로운 작업을 할 때는
master브랜치에서 새로운 브랜치를 생성한다 - 브랜치명은 다른 개발자가 봤을 떄 어떤 일을 하는지 알 수 있도록 명확히 작성한다
- refactor-authentication
- user-content-cache-key
- make-retina-avatars
- 생성한 브랜치는 명시된 기능 이외의 것을 수정하지 않는다
master에merge가 된 후 배포를 진행한 후 정상 동작하는지 확인한다
선행 조건
- 테스트 자동화
- eg) Travis CI, Jenkins CI
- 배포 자동화
- eg) fabric, Ansible, Capistrano
기타
git flow에 비해 굉장히 단순하고 간단하기 때문에 쉽게 도입할 수 있다Pull Request는 최소 단위로 생성하는게 좋다- 너무 방대한할 경우 리뷰어가 굉장히 고통받고 힘들어한다
- 팀 내에서 개발 규칙을 정하여
Wiki로 공유하는것도 좋은 방법이다