[1주차] GitHub Flow 전략에 대한 이해
이 문서는 [월간-CS][24년 4월] React, Next 배포와 배포 자동화 A부터 Z에서 사용할 Git 브런치 전략에 대한 안내서입니다.
Git 전략
서비스를 개발할 때, 개발팀에서는 적합한 Git 전략을 선택하게 됩니다.
선택된 GitHub 전략에 맞게 개발문화, CI/CD 파이프라인, 자동화 파이프라인 등이 구성되게 됩니다. 이런 것들의 궁극적인 목표는 "서비스를 더 고품질로, 안전하고, 빠르고, 자주 배포하게 하는 것"에 가깝다고 생각합니다.
따라서 여러 요구사항 중에서 개발팀에 적합한 Git 브런치 전략이 선택되어 있을 것입니다.
다양한 Git 전략
세상에는 다양한 Git 전략이 존재합니다.
취준때부터 현직까지 GitHub 만을 사용하면서 3가지 Git 전략을 경험했습니다.
만약 SVN/GitLab/GitBucket 등을 사용한다면 독자적인 Git 전략이 있을 수 있으나, 여기서는 고려하지 않겠습니다.
아래에 있는 3가지 전략 중 Git Flow와 GitHub Flow는 GitHub PR을 사용하며, 이에 따라 코드의 주요 분기점을 파악하기 쉽습니다.
하지만 마지막 GitHub Rebase 전략의 경우 git rebase를 사용하며, git 소스 트리가 깔끔해지는 장점이 있습니다. 하지만 동시에 코드의 주요 분기점을 파악하기 어렵습니다. 이번 주제에는 적합하지 않다고 생각하여 Git Flow 전략으로 설명을 이어가겠습니다.
Git Flow 전략
GitHub Flow 전략
GitHub Rebase 전략
References
Impa Dev (Blog) | [GIT] 📈 깃 브랜치 전략 정리 - Github Flow / Git Flow
Seosh817 (Blog) | [Git] Git Rebase란? (feat. git-flow 히스토리를 더 이쁘게 만들기)
GitHub Flow 선택 이유
Git Flow 전략은 Main, Dev, Feature, Release, HotFix 브런치로 구성된 복잡한 전략입니다. 이런 복잡성은 CI/CD를 처음 구성하는 사람이나 소규모 개발팀에는 과도한 전략이라고 생각 합니다.
따라서 Main, Topic 브런치로 구성되어 있는 GitHub Flow 전략을 선택했습니다.
GitHub Flow 전략 소개
GitHub Flow 전략은 다음과 같이 2개의 브런치로 구성 되어 있습니다.
Main 브런치
배포를 했을 때, 문제가 발생하지 않는 안전한 코드Topic 브런치
Main 브런치로부터 생성되며, 특정한 구현부를 개발하기 위해서 만들어진 브런치입니다.
어떤 구현부를 만들 것인지 다음과 같이 구체적인 브런치 이름을 가지고 있어야 합니다.user-signup-page
user-signup-modal
user-signup-format
user-signup-business-logic