Git 워크플로우 개요
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 소프트웨어 개발자 및 협업 팀
- 중급~고급 수준 (워크플로우 선택과 CI/CD 이해 필요)
핵심 요약
- 5가지 주요 워크플로우 (
Centralized
,Feature Branch
,Git Flow
,GitHub Flow
,Trunk-Based
)로 팀 규모와 프로젝트 복잡도에 맞춤 적용 - Pull Request(PR) 사용, 짧은 브랜치 유지, 삭제된 브랜치 정리가 핵심 최고 실천 원칙
- CI/CD 도구(예: GitHub Actions)와 고급 팀에 적합한 워크플로우 선택 시 성능과 안정성 향상
섹션별 세부 요약
1. **Centralized 워크플로우**
- 단일
main
브랜치 사용, 모든 커밋이main
에 직접 적용 - 작은 팀/개인 프로젝트에 적합, 병렬 기능 개발 필요 없음
- 예시 명령:
```bash
git checkout main
git pull origin main
git add .
git commit -m "feat: update homepage layout"
git push origin main
```
2. **Feature Branch 워크플로우**
- 기능/버그 수정을 별도 브랜치에서 개발 후
main
또는develop
에 PR로 병합 - 코드 리뷰와 CI/CD 파이프라인 사용 팀에 적합
- 예시 명령:
```bash
git checkout -b feature/user-login
git commit -m "feat: add login form"
git push origin feature/user-login
```
3. **Git Flow 워크플로우**
- 개발, 릴리스, 핫픽스, 기능 브랜치로 구조화
- 대규모 팀 및 정기 릴리스 필요한 프로젝트에 적합
- 구조:
```
main
develop
├── feature/*
├── release/*
└── hotfix/*
```
4. **GitHub Flow 워크플로우**
- 기능 브랜치에서 작업 후
main
에 PR로 병합, CI/CD 도구(예: GitHub Actions)와 호환 - 웹 앱 및 빠른 배포 요구 팀에 적합
- 예시 명령:
```bash
git checkout -b feature/payment-integration
git push origin feature/payment-integration
```
5. **Trunk-Based 워크플로우**
main
또는trunk
브랜치에 직접 작업, 짧은 라이프사이클 브랜치 사용- 고속 배포 및 CI/CD 중심 환경에 적합
- 예시 명령:
```bash
git checkout -b quick-fix
git merge --squash quick-fix into main
```
6. **워크플로우 비교표**
| 워크플로우 | 최적 사용 대상 | 복잡도 |
|------------|----------------|--------|
| Centralized | 개인/소규모 프로젝트 | ⭐ |
| Feature Branch | 중간 규모 팀 | ⭐⭐ |
| Git Flow | 기업/정기 릴리스 프로젝트 | ⭐⭐⭐ |
| GitHub Flow | 현대적 팀/CI/CD 도구 사용 | ⭐⭐ |
| Trunk-Based | CI/CD 중심 환경 | ⭐⭐ |
결론
- 팀 규모와 프로젝트 특성에 따라 워크플로우를 선택하고, Pull Request와 CI/CD 자동화를 통해 코드 품질과 협업 효율성 극대화
- 짧은 브랜치 사용과 병합 후 브랜치 삭제를 통해 리포지토리 정리 및 버전 관리 간소화가 실무 적용 핵심 팁