[Git] Git Branch 전략 | git flow, github flow

dyomi·2024년 8월 11일
0

Git Branch 전략?

Git Branch 전략은 여러 명의 개발자가 서로 영향을 주지 않고 동시에 작업을 할 수 있도록 도와준다. 대표적으로 Git FlowGitHub Flow가 있다.

Git Flow

Branch 종류

Git Flow는 master와 develop, feature, release, hotfix 이렇게 5가지로 브랜치를 나누어 사용한다.

master: 제품 출시 버전을 관리하는 메인 브랜치
develop: 다음 출시 버전을 위해 개발하는 브랜치
feature: 새로운 기능을 개발하는 브랜치
release: 배포를 위해 master로 보내기 전, 품질검사(QA)를 하기 위한 브랜치
hotfix: 출시된 제품의 버그를 고치기 위한 브랜치

개발 진행 흐름

우선, master에서 develop 브랜치를 분기하고, 기능 구현이 있을 경우 develop 브랜치를 기준으로 feature 브랜치를 분기한다.

작업이 완료되면 다시 develop 브랜치로 병합하고, develop 브랜치에서 release 브랜치를 분기한 뒤 배포를 위한 준비를 한다.

이때 버그가 발견되면 release에서 바로 반영을 하고, 테스트 후에 master 브랜치로 병합하여 제품을 출시한다.

상용 배포 후 발견된 버그는 hotfix 브랜치에서 작업한다.

GitHub Flow

Branch 종류

GitHub Flow는 하나의 master 브랜치에 기능을 추가하기 위한 feature브랜치 이 둘만으로 운영하는 전략이며, 훨씬 간단하고 빠르게 수정 배포가 가능하다는 장점이 있다.

master: 제품 출시 버전을 관리하는 메인 브랜치
feature: 새로운 기능을 개발하는 브랜치

개발 진행 흐름

master는 배포를 위한 소스코드를 관리하고, 신규 기능 개발이 필요할때 feature브랜치를 따서 작업을 진행한 뒤, master로 다시 머지하는 방식이다.

Git Flow vs GitHub Flow

Git Flow 전략은 더 많은 제어와 복잡성을 가지고 있어서 빠른 배포가 필요한 경우 유연성이 떨어지지만, 그만큼 배포 안정성과 버전 관리 및 롤백 등으로 체계적인 운영이 가능하다.

GitHub Flow는 테스트와 검증 절차를 거치지 않고 바로 마스터로 머지해서 위험성을 가지고 있지만, 그만큼 단순하고 빠르게 진행할 수 있어서 작은 규모의 프로젝트에 적합하다.

실무에서는 이 두 가지 방식을 섞어서 사용하는 경우도 있다. (예를 들자면, GitHub Flow를 사용하되 release 브랜치만 따로 생성해서 사용하자 등등..)



🌟 추가 질문

📍 Git과 GitHub 차이?

Git은 분산 버전 관리 시스템으로 소프트웨어이며, GitHub는 Git을 기반으로 하는 웹 기반 호스팅 서비스이다.

Git은 개발자의 로컬 컴퓨터에서 동작하며, 소스 코드의 버전 관리를 담당한다. 반면, GitHub는 Git 리포지토리를 호스팅하는 웹 서비스로, 프로젝트 협업을 위한 다양한 도구를 제공한다.



참고 자료
Git Branch 전략 비교 - Git Flow vs GitHub Flow

profile
기록하는 습관

0개의 댓글