티스토리 뷰
Git 브랜치 전략은 무엇이고 왜 필요한가
서론
Git 브랜치 전략이란 무엇인가?
쉽게 협업시 브랜치(branch) 생성 규칙을 정의하는 것을 말합니다.
일관된 규칙은 소통의 효율성을 높여 협업이 원활하게 진행되도록 도와줍니다.
브랜치 전략은 각 기능이나 버그 수정, 테스트 작업을 별도의 브랜치에서 수행하고 메인 코드 베이스에 병합함으로써
코드의 안정성을 유지하고 개발 속도를 높이는 것을 목표로 합니다.🪄
대표적으로 Git-Flow와 GitHub-Flow가 있으며,
프로젝트의 규모, 팀원들의 숙련도, 배포 빈도 등에 따라 적절한 브랜치 전략을 선택하는 것이 좋습니다.
📍Git Flow
Git Flow는 Vincent Driessen이 제안한 브랜치 전략으로, 복잡한 프로젝트 관리에 유용합니다.
다음과 같은 주요 브랜치로 구성됩니다.
main 브랜치
항상 배포 가능한 상태를 유지합니다. 최종 배포된 코드만 포함됩니다.
develop 브랜치
다음 배포를 준비하는 브랜치입니다.
모든 기능이 추가되고 버그가 수정되어 배포 가능한 안정적인 상태라면 master 브랜치에 병합(merge)합니다.
feature/* 브랜치
새로운 기능을 개발하는 브랜치입니다.
develop 브랜치로부터 분기하고, 완료되면 다시 develop 브랜치로 병합됩니다.
- feature/new-feature
- 브랜치명은 보통 케밥케이스(Kebab-case)로 작성됩니다!
release/* 브랜치
배포 준비가 완료된 코드를 관리하는 브랜치입니다.
hotfix/* 브랜치
긴급한 버그 수정을 위해 사용되는 브랜치 입니다.
main 브랜치로부터 분기하고, 수정 완료 후 main과 develop 브랜치에 병합됩니다.
Git Flow의 장점은 모든 작업이 명확하게 분리된다는 점입니다.
하지만 그만큼 브랜치 관리가 복잡해질 수 있으므로 대규모 프로젝트나 팀에 적합합니다.
📍GitHub Flow
Git Flow보다 단순화된 브랜치 전략으로 자주 사용되는 있는 전략입니다.
빠른 개발주기를 가진 프로젝트에 적합합니다. 주요 브랜치는 다음과 같습니다.
main 브랜치
배포 가능한 상태의 코드입니다.
feature/* 브랜치
새로운 기능이나 버그 수정을 위한 브랜치입니다. main 브랜치로부터 분기하여 작업을 수행하고, 작업이 완료되면 다시 main 브랜치로 병합합니다. 보통 Pull Request를 통해 코드 리뷰와 병합이 이루어집니다.
GitHub Flow는 Git Flow보다 간소화된 브랜치와 Pull Request와 코드 리뷰를 지원해 협업을 용이하게 합니다.
또한 GitHub Actions를 통해 CI/CD 작업을 자동화하여 배포를 효율적으로 관리할 수 있습니다.
결론
Git과 GitHub의 브랜치 전략은 기본적으로 동일한 개념에 기반하지만, 코드 리뷰와 자동화 측면에서 약간의 차이가 있습니다.
특정 브랜치 전략을 완벽하게 따르려고 한다기보다는
팀원들과 프로젝트의 특성에 맞춰 적절한 브랜치 전략을 결정하는 것이 중요합니다.
감사합니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'기타' 카테고리의 다른 글
[Issue Report] Axios Blob 응답과 에러 파싱 문제: 엑셀 다운로드 API 이슈 (3) | 2024.10.13 |
---|---|
[Docker] Dockerfile로 이미지 생성하기 (0) | 2023.12.19 |
[Docker] 도커 명령어 정리 (0) | 2023.12.14 |
[Docker] 도커 시작하기 (0) | 2023.12.08 |
[Git] .gitignore이란? (0) | 2023.11.03 |