Purpose
Short-lived branches, always-deployable main.
The standard
GitHub Flow.
mainis always deployable; every change goes through a branch and PR.Branch names:
feat/…,fix/…,chore/…,docs/…,exp/…(experiments — may be deleted without merging).Branches live days, not weeks. If a branch is older than a week, split it or merge behind a flag.
Rebase on
mainbefore opening a PR; squash-merge intomainso history is one commit per PR.Releases are tags on
main(03.06), not long-lived release branches.Hotfix = normal branch + PR, prioritized.
Procedure
git switch main && git pull
git switch -c feat/short-description
# work, commit per 03.04
git fetch origin && git rebase origin/main
git push -u origin feat/short-description # open PR
Anti-patterns
develop branches; committing directly to main; one giant branch per project.
Owner: Matt · Last reviewed: 2026-09