Squash Commits: From Messy History to Clean Story

Muhammad Abdullah
Software Engineer & Tech Enthusiast

The Messy History

I will never forget the day I submitted a pull request with twelve commits in it. Most of them were things like “fix typo,” “oops forgot semicolon,” and “fix typo again.” My reviewer looked at me and said politely, “Can you squash these into one?” At first I was confused. Why does it matter? But then I realized, commit history is not just a log, it is a story. And no one wants to read a story full of typos and corrections.

Why This Matters

Clean commit history is not about perfectionism, it is about professionalism. When a new developer joins the project, they should be able to understand what happened and why. A pile of “fix typo” commits tells them nothing. A single commit like “Add login validation with error handling” tells them everything they need to know. Squashing helps you tell better stories in Git.

How Squashing Works

Squashing means combining multiple commits into one. Git lets you do this with interactive rebase. Here is how:

# Start an interactive rebase for the last 5 commits
git rebase -i HEAD~5

# In the editor, change "pick" to "squash" (or just "s") for the commits you want to merge

Once you save and close the editor, Git will combine the commits and let you write a new, polished commit message. Suddenly, your messy history becomes clean and easy to read.

Benefits of Squashing

Pro Tips From Experience

Mistakes to Avoid

  1. Squashing public commits: Do not squash commits that are already pushed and pulled by others, it causes chaos.
  2. Over-squashing: Do not squash everything. Some commits deserve to stand alone for clarity.

The Reality Check

Squashing is not about hiding your mistakes, it is about telling a clear story. Code is not just for machines, it is for people. The same goes for commit history. When you squash, you respect your teammates’ time and your future self’s sanity. The next time you have a messy chain of commits, take the extra minute to squash them into a story worth reading.

Trust me, your reviewers will thank you. And years later, when you scroll through your history, you will thank yourself too.