개발

Git Branch 전략

xuwon 2024. 12. 3. 16:05

Git Branch 전략은 협업할 때 효율적으로 코드를 관리하고 협업을 진행하기 위해 사용되는 방식입니다.

주로 사용되는 Git Branch 전략에 대해 소개하겠습니다.

 

1. Git Flow

Vincent Driessen이 제안한 전략으로, 안정성과 체계적인 배포 관리를 목표로 합니다.

주요 브랜치

- Main: 항상 배포 가능한 상태. 릴리스된 코드만 포함

- Develop: 개발 진행의 중심. 다음 릴리스를 준비하는 브랜치

보조 브랜치

- Feature Branch: 새로운 기능 개발을 위해 생성. 완료 후 develop에 병합.

- Release Branch: 배포 전 최종 테스트와 수정 작업. 완료 후 maindevelop에 병합.
(이름 예시: release/v1.0)

- Hotfix Branch: 긴급 버그 수정을 위해 생성. 완료 후 maindevelop에 병합.
(이름 예시: hotfix/login-error)

특징

- 구조가 체계적이라 중장기 프로젝트에 적합.

- 브랜치 관리가 복잡해질 수 있다.

 

2. GitHub Flow

GitHub에서 제안한 전략으로, 단순하고 빠른 배포에 초점이 맞추어져 있다.


주요 브랜치

- Main: 항상 배포가 가능한 상태. 모든 코드 변경 사항은 이 브랜치로 병합.


작업 방식

1. 작업 시 새로운 브랜치 생성 (ex. feature/header-update)

2. 작업 완료 후  Pull Request  생성

3. 코드 리뷰와 테스트 후 main에 병합

4. 병합 후 즉시 배포 가능


특징

- 단순한 구조로 소규모 프로젝트나 CI/CD 환경에 적합

- main 브랜치가 항상 안정적이어야 함.

 

3. GitLab Flow

GitLab이 제안한 전략으로, CI/CD 파이프라인과 잘 연동된다.


주요 브랜치

- Production: 프로덕션 배포용 브랜치.

- Pre-production (optional): 스테이징 환경용 브랜치.

- Feature Branch: 기능별 작업용 브랜치.


작업 방식

1. Feature 브랜치 생성 후 작업.

2. 작업 완료 후 main 또는 production에 병합.

3. 필요한 경우 pre-production 브랜치에서 테스트.


특징

- 유연한 구조로 다양한 프로젝트에서 활용 가능.

- CI/CD가 잘 설정되어야 효율적.

 

Trunk-Based Development

지속적인 배포와 짧은 개발 주기를 목표로 한 전략.


주요 브랜치

- Main: 모든 작업이 여기서 이루어짐.


작업 방식

1. 작은 단위로 작업 후 바로 main에 병합.

2. 병합 전 철저한 테스트와 코드 리뷰 필요.


특징

- 병합 충돌이 적음.

- 배포 주기가 짧은 프로젝트에 적합.

 

프로젝트 규모, 팀의 협업 스타일, 배포 주기 등을 고려해 적합한 전략을 선택하면 됩니다.

 

브랜치 네이밍 규칙

협업 시 혼란을 줄이기 위해 규칙을 정함.

Feature

feature/<기능명> 또는 feature/<이슈 번호>

(feature/user-login, feature/1)

Bugfix

bugfix/<버그명>

(bugfix/fix-typo)


Hotfix

hotfix/<긴급수정>

(hotfix/security-patch)


Release

release/<버전>

(release/v1.0.0)

 


저는 실습할 때, developmain 브랜치를 만들어놓고 기능을 추가할 때마다
feature/<이슈 번호> 브랜치 만들어 developmerge하는 방식으로 했는데
이 방식도 편리하고 좋은 것 같아요.
(CI/CD 활용)

 

 

 

GitHub - xuuwon/youtube-web-xu

Contribute to xuuwon/youtube-web-xu development by creating an account on GitHub.

github.com