My Git Workflow for Solo Projects

When you’re the only person on a project, git discipline is easy to skip. Here’s why I still bother and what I actually do.

Commit messages

I follow a lightweight version of Conventional Commits:

feat: add tag filtering to post list
fix: correct date sorting order
chore: update dependencies

The type prefix makes git log --oneline scannable at a glance and makes it trivial to generate a changelog later.

Branch strategy

For solo work I keep it simple:

  • main — always deployable
  • feat/<name> — anything that takes more than one commit

I squash-merge feature branches so main stays linear. This makes git bisect actually useful.

What I skip

  • Pull request reviews (it’s just me)
  • Branch protection rules on main
  • Semantic versioning for internal tools

The goal is a clean history that helps future me understand why a change was made, not process for its own sake.

One rule I always keep

Write the commit message before you write the code. Sounds backwards, but it forces you to clarify what you’re actually trying to do, and it keeps commits focused.