[git, github] github-flow 정리
introduction
이번에 프로젝트를 진행하면서 github-flow 적용하기 위해 간단히 관련 내용을 정리해보려 한다.
github-flow
git 브랜치 전략
중 하나로, 이전에 작성한 git-flow보다 더 간단하게 적용이 가능하다. git-flow
에서는 각 역할에 맞게 브랜치를 생성하고 적용해야 했다. 하지만 github-flow
에는 별도의 브랜치가 분리되어 있지 않다. 또한 git-flow
방식은 github에서 사용하기엔 복잡한 부분이 많았다.
위 사진과 같이 main
브랜치를 기준으로 모든 브랜치가 뻗어 나간다. 이런한 main
브랜치는 항상 최신의 상태이며, stable
한 상태로 배포되는 브랜치이다.
새로운 작업을 시작하기 위해서는 브랜치의 이름을 자세하게 작성하여 github
에서 확인하기 쉽게 구별한다(위 사진의 브랜치 명은 예시로 작성한 것이다). 이렇게 생성한 브랜치는 원격 저장소 브랜치
에 상시로 push
한다. 코드 리뷰가 필요하거나 main
에 merge
한 준비가 되었으면 pull request
를 생성한다.
작업에 대한 리뷰가 완료되면 main
브랜치로 merge
한다. 주의해야 할 점은 merge
가 완료되면 main
브랜치는 즉시 배포되어야 한다.
주의해야 할 점은 local repository
에서 main
브랜치에 merge
한 후 push
하면 안된다는 것이다. main
에 반영되는 것은 오로지 pull request
를 통해서만 가능하다.
정리
브랜치 전략이 매우 단순하기 때문에 git을 활용한 협업을 처음 접하게 되면 쉽게 적용할 수 있을 것 같다. 하지만 main 브랜치는 항상 실행 가능한 상태를 유지해야 하기 때문에 좀 더 꼼꼼한 코드 리뷰나 테스트 작업이 필요할 것으로 예상된다.
References.