Git Workflow
Purpose
Choose and implement a Git workflow appropriate for team size and release cadence.
Workflow Selection
| Workflow | Best for | Release cadence |
|---|---|---|
| Trunk-based | Small teams, CD, feature flags | Continuous |
| GitHub Flow | Most teams, simple branching | On merge to main |
| Git Flow | Strict release schedules, multiple versions | Scheduled releases |
Default recommendation: Trunk-based with short-lived branches (< 2 days).
Branch Convention
main— always deployable, protectedfeature/description— short-lived work branchesfix/description— bug fix branchesrelease/vX.Y.Z— only if using Git Flow
Commit Message Convention
Format: type(scope): description
Types: feat, fix, refactor, docs, test, chore, perf, ci
Examples:
feat(auth): add OAuth2 login flowfix(api): handle null response from payment providerrefactor(orders): extract validation to dedicated service
Pull Request Workflow
- Create branch from main (keep it short-lived)
- Push early and often (enables CI feedback)
- Open PR when ready for review (or draft PR for early feedback)
- CI must pass before review
- At least one approval required
- Squash merge to main (clean history)
- Delete branch after merge
Branch Protection Rules
- Require CI to pass before merge
- Require at least 1 approval
- Dismiss stale approvals on new push
- No direct push to main
- Linear history (squash or rebase merges)
Related Skills
deployment/execution-cicd-pipeline— pipeline triggered by Git eventsdeployment/knowledge-cicd-principles— CI requires frequent integration