Git Flow, GitHub Flow, GitLab Flow…
그 이름은 많이 들어봤는데, 막상 우리 팀에 어떻게 써야 할지 감이 안 잡힐 때 있잖아요?
"이건 Git Flow야!"
"우리는 GitHub Flow 써."
"GitLab이라서 GitLab Flow 써야지."하지만 현실은 이렇다.
전략은 교과서에 있고, 팀은 그걸 섞어서 현실적으로 쓴다.
Git Flow, GitHub Flow, GitLab Flow... 그 이름은 많이 들어봤는데, 막상 우리 팀에 어떻게 써야 할지 감이 안 잡힐 때 있잖아요?
이 글은 실무 관점에서 3가지 대표적인 Git 브랜치 전략을 비교하고,
우리 팀에 맞는 전략 조합을 고민하는 사람들을 위해 썼습니다.
특히나 두 명이서 프로젝트를 한다거나, 리팩토링을 장기적으로 운영하고 있다면
우리는 우리만의 리듬으로 협업하고 있으니까요. 꼭 정석대로 안 해도 괜찮아요 :)
그 기준점을 잡아줄 수 있기를 바라며, 아래 내용을 정리했습니다.
Git Flow
예를 들어서, 팀원이 많고 QA 단계가 중요한 회사라면 Git Flow가 어울려요.
사진출처: 유튜브 채널 : Carl McGruder - Development Approaches Git Flow and GitHub Flow
Git Flow는 복잡한 프로젝트에 적합한 전략입니다. 이 전략은 두 개의 주요 브랜치와 여러 개의 보조 브랜치를 사용합니다.
- master: 항상 배포 가능한 상태를 유지하는 브랜치입니다.
- develop: 다음 배포를 위한 개발 작업을 진행하는 브랜치입니다.
- feature: 새로운 기능을 개발할 때 사용하는 브랜치입니다.
- release: 배포 준비가 완료된 코드를 안정화할 때 사용하는 브랜치입니다.
- hotfix: 배포된 코드에서 긴급 수정이 필요할 때 사용하는 브랜치입니다.
요약
전략 | 장점 | 단점 |
---|---|---|
Git Flow | 명확한 구조, 대규모 프로젝트에 적합 | 복잡성, 작은 팀에는 비효율적 |
GitHub Flow
예를 들어, 스타트업처럼 빠른 피드백이 필요한 팀이라면 GitHub Flow가 잘 맞아요.
사진출처: 유튜브 채널 : Carl McGruder - Development Approaches Git Flow and GitHub Flow
GitHub Flow는 간단하고 빠른 배포가 필요한 프로젝트에 적합합니다. 이 전략은 기본적으로 master 브랜치와 feature 브랜치만을 사용합니다.
- master: 항상 배포 가능한 상태를 유지하는 브랜치입니다.
- feature: 새로운 기능을 개발할 때 사용하는 브랜치입니다.
작업이 완료되면 pull request를 통해 master 브랜치에 병합합니다.
요약
전략 | 장점 | 단점 |
---|---|---|
GitHub Flow | 간단하고 빠른 배포 | 대규모 프로젝트에는 부적합 |
GitLab Flow
예를 들어, 다양한 환경에서 배포가 필요한 팀이라면 GitLab Flow가 좋겠죠.
사진출처: 유튜브 채널 : Carl McGruder - Development Approaches Git Flow and GitHub Flow
GitLab Flow는 GitHub Flow와 유사하지만, 더 많은 배포 환경을 지원합니다. 이 전략은 브랜치와 태그를 사용하여 다양한 배포 환경을 관리합니다.
- master: 항상 배포 가능한 상태를 유지하는 브랜치입니다.
- environment: 각 배포 환경을 나타내는 브랜치입니다.
- feature: 새로운 기능을 개발할 때 사용하는 브랜치입니다.
이 전략은 CI/CD를 통해 자동화된 배포를 지원합니다.
요약
전략 | 장점 | 단점 |
---|---|---|
GitLab Flow | 다양한 배포 환경 지원 | 설정 복잡성 |
실전 팁
- 팀의 규모와 성격에 맞는 전략 선택: 팀의 크기와 프로젝트의 복잡성에 따라 적절한 전략을 선택하세요.
- 문서화: 팀의 Git 전략과 프로세스를 문서화하여 모든 팀원이 이해하고 따를 수 있도록 하세요.
- 정기적인 리뷰: 팀의 Git 전략이 잘 작동하는지 정기적으로 리뷰하고 필요에 따라 조정하세요.
Git 전략을 고르는 기준이 생겼다면, 이제 우리 팀만의 스타일로 엮어보는 거예요. 완벽한 전략보다 어울리는 흐름이 더 중요하니까요 ☺️
혹시 여러분의 팀에서는 어떤 Git 전략을 쓰고 있나요?
팀 규모, 프로젝트 성격에 따라 다른 선택이 있을 수 있겠죠.
사례나 팀의 접근 방식이 궁금합니다. 댓글이나 링크도 환영입니다!
'기타 개발 > Git' 카테고리의 다른 글
GitHub users are now required to enable two-factor authentication (0) | 2023.08.02 |
---|---|
Git - Fork한 레포지토리 최신화 하기 (0) | 2023.03.05 |
깃 리모트 변경 하기 (0) | 2023.03.05 |
git ignore 사용하기 (0) | 2022.11.08 |
sourcetree github User.name 변경하기 (0) | 2022.05.18 |
애쏘보자들을 위한 깃사용법 - 1 (0) | 2022.05.11 |
공동작업을 위한 Git 버전관리 (0) | 2022.04.22 |
git 에러 warning: adding embedded git repository (0) | 2021.11.23 |