Write commit messages that explain WHY a change was made, not just WHAT changed. "fix bug" tells future-you nothing — "fix: prevent duplicate form submission on slow connections" tells you the context, the cause, and the scope without reading any code.
Poor commit messages make git log, git blame, and git bisect useless for debugging. When a regression appears and every commit says "fix bug" or "update code", developers must read every diff to understand what changed and why — turning a 10-minute bisect into a multi-hour archaeology session.
BeforeMerge scans your pull requests against this rule and 3+ others. Get actionable feedback before code ships.
Git history is your codebase's memory. When a production bug appears six months from now, the first tool you reach for is git log and git blame. The commit message is the difference between "fix: prevent duplicate form submission when server responds slowly (closes #847)" — which tells you exactly what, why, and where to look — and "fix bug" — which tells you nothing.
Descriptive commit messages also make git bisect effective. When bisecting a regression across 200 commits, meaningful messages let you skip obviously irrelevant commits and focus on likely candidates. With "update" and "fix" messages, every commit is equally suspect.
This investment is trivial: 30 extra seconds per commit saves hours of debugging later.
Every commit message should follow the format: type: description that explains the why. Use conventional commit types (feat, fix, refactor, docs, test, chore). The description should explain the motivation, not just restate the diff.
fix bug
update code
wip
final fix
please work
changesfix: prevent duplicate form submission on slow connections
The submit button remained active while waiting for the server
response. On connections >2s latency, users would click again,
creating duplicate records. Disable the button on submit and
show a loading spinner.
Closes #847feat: add CSV export for transaction history
Users requested the ability to export transactions for their
accountants. Adds a "Download CSV" button on the transactions
page that exports the current filtered view.
Closes #1203Review recent commit messages:
git log --oneline -20Look for messages that are:
type(scope): descriptionCloses #123 or Fixes #456