GitHub Flow
- Branch Structure:
main+ feature branches
- Principle: Create feature branch directly from main → PR → Review → Merge
- Characteristics: Simple, suitable for continuous deployment (CI/CD)
- Use Cases: SaaS and startups where fast deployment is critical
GitLab Flow
- Branch Structure:
main+feature/*+ optionalenv/*(e.g.staging,production)
- Principle: Feature branches merge into
main, then promoted to environment branches
- Characteristics: Integrates issue tracking and CI/CD deployment stages
- Use Cases: DevOps teams using GitLab with environment-based deployments
Rebase Flow
- Branch Structure: Similar to GitHub Flow (
main+ feature)
- Principle: Linearize commits on main using
rebaseinstead of merge
- Characteristics: Maintains clean commit history, strict conflict management
- Use Cases: OSS or research projects where commit history is important
Gitflow
- Branch Structure:
main,develop,feature,release,hotfix
- Principle: Development on
develop, deployment tomain
- Characteristics: Complex but stable, release-centric
- Use Cases: Enterprise projects with clear release cycles
Forking Workflow
- Branch Structure: Individual forked repos per developer + upstream main
- Principle: Work in personal repo, then reflect to upstream via PR
- Characteristics: Essential for external Open Source Contribution
- Use Cases: GitHub OSS, managing external contributions

Seonglae Cho


