How to Enforce Branch Naming Conventions With a Git Hook
Inconsistent branch names break naming-based automation and clutter the repo. A hook enforces a convention. Here is how.
Insights, tutorials, and stories from the world of game development. Learn how top indie studios ship better games with fewer bugs.
Written by devs, for devs.Try a different search term or clear the filters.
Inconsistent branch names break naming-based automation and clutter the repo. A hook enforces a convention. Here is how.
Hand-bumped versions are inconsistent and disconnected from the changes. Conventional commits automate it. Here is how.
Checking out a whole monorepo when you only need one area wastes space and time. Sparse checkout fixes it. Here is how.
A repo that is large for no visible reason has big files buried in history. Finding them is the first step. Here is how.
Client hooks are easy to bypass, so policy is not really enforced. A server-side hook makes it binding. Here is how.
A hard reset feels catastrophic, but the reflog remembers where you were. Here is how to undo it.
A moved or deleted release tag breaks traceability. Protecting tags keeps releases immutable. Here is how.
Forgotten PRs stall work and rot. Automated reminders keep them moving. Here is how to set them up.
Cross-OS line-ending differences create noisy diffs and conflicts. Normalizing them with gitattributes fixes it. Here is how.
A hand-written changelog always misses something. Generating it from conventional commits keeps it complete. Here is how.
Supporting multiple engine versions but testing one means surprises. A version matrix catches them. Here is how.
A code diff cannot show a visual change. Posting rendered before/after images can. Here is how.
No artifact retention policy means runaway cost or lost builds. A tiered policy fixes both. Here is how.
Re-running tests for unchanged code wastes time. Caching results skips them safely. Here is how.
A migration that fails in production is a crisis. Validating it in CI catches it first. Here is how.
A change to a critical system reviewed by someone unfamiliar is barely reviewed. File-based reviewer rules fix it. Here is how.
A preview that renders fine can still be broken. Smoke testing it catches functional issues. Here is how.
Build size as one number tells you nothing actionable. A bundle analyzer breaks it down. Here is how.
Deploying while reliability is already poor compounds the problem. An error-budget gate protects it. Here is how.
A server image full of build tools is slow to deploy. Multi-stage builds slim it down. Here is how.
An incompatible license that slips in is a legal risk. A CI license check catches it. Here is how.
Accessibility regressions exclude players and are easy to miss. CI audits catch them. Here is how.
A wide release of a risky change is all-or-nothing. Canary builds for early testers reduce the blast radius. Here is how.
Performance regressions that nobody measures ship to players. A performance smoke test catches them. Here is how.