feature/기능 등으로 브랜치 이름을 나누는 것은 알았다. 하지만 정확하게 git flow 란 무엇인지 알고자 그리고 기존 동아리 공식 홈페이지를 리뉴얼 하면서 깃 브랜치 전략을 따라야겠다는 필요성을 느껴 글로 정리한다.
브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow 이다.
즉 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법론을 말한다.
Git flow 전략
기본적인 가지의 이름은 feature > develop > release > hotfix > master 5 가지로 구분하곤 한다. 왼쪽으로 갈 수록 포괄적인 가지이며 master branch 를 병합할 경우 그 왼쪽에 있는 hotfix 등 모든 가지들에 있는 커밋들도 병합하도록 구성하게 된다. 5 가지 중 항시 유지되는 메인 브랜치 master, develop 2 가지와 merge 되면 사라지는 보조 브랜치 feature, release, hotfix 3 가지로 구성된다.
master : 라이브 서버에 제품으로 출시되는 브랜치
develop : 다음 출시 버전을 대비하여 개발하는 브랜치
feature : 추가 기능 개발 브랜치. develop 에서 나온다
release : 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, test 를 진행하고 master 브랜치로 합친다.
hotfix : master 브랜치에서 발생한 버그를 수정하는 브랜치.
보통 main 브랜치라 하면 master 브랜치와 develop 브랜치 두 종류를 말한다. master 브랜치는 배포 가능한 상태만을 관리하는 브랜치를 말하며 develop 브랜치는 다음에 배포할 것을 개발하는 브랜치이다.
보조 브랜치는 feature 브랜치 또는 topic 브랜치를 말한다.
develop 브랜치에서 다시 feature 브랜치를 나눠 작업하는 것이다. develop 브랜치에는 기존에 잘 작동하는 개발코드가 담겨 있으며 보조 브랜치에는 새로 변경될 개발 코드를 분리하고 각각 보존하는 역할을 한다.
즉, 보조 브랜치는 기능을 다 완성할 때까지 유지하고 다 완성되면 develop 브랜치로 merge 한다. 결과가 좋지 않으면 버려질 수도 있음
release branch 는 배포를 위한 최종적인 버그 수정 등의 개발을 수행하는 브랜치이다. 배포 가능한 상태가 되면 master 브랜치로 병합 시키고 출시된 master 브랜치에 버전 태그를 추가한다. release 브랜치에서 기능을 점검하며 발견한 버그 수정 사항은 develop 브랜치에도 적용해줘야 한다. 그러므로 배포 완료 후 develop 브랜치에 대해서도 merge 작업을 수행해야 한다.
hotfix branch 는 배포한 버전에서 긴급하게 수정할 필요가 있을 때 master 브랜치에서 분리하는 브랜치를 말한다.
main branch (develop, master) 를 제외한 feature, release, hotfix branch 는 사용하지 않는다면 지우더라도 오류가 발생하지 않기 때문에 사용 후 지워뒀다가 해당 가지를 활용해야 할 상황이 왔을 때 만들어줘도 괜찮다.
'주제 업슴' 카테고리의 다른 글
[빅데이터 최신 기술] ADHD 관련 텍스트 마이닝: 키워드 네트워크와 감정 흐름 기반 분석 - 1 (0) | 2025.03.26 |
---|---|
Jest 로 프론트엔드 테스트 코드 작성하기 (0) | 2025.02.18 |
[모각코] 컴퓨터 네트워크 혼내주기 2 🍕 (0) | 2024.05.29 |
[모각코] 컴퓨터 네트워크 혼내주기 🍕 (2) | 2024.05.22 |
스크롤에 반응하는 목차 하이라이트 만들기 (0) | 2024.03.20 |