Opinions / Essay
Your Commit History Is Part of Your Job
Your Git commit history isn't optional documentation; it's a core part of professional software development. Poor commits like "fixed stuff" or "updates" create technical debt that costs your team hours of wasted time. This article breaks down why clean commit history matters, what good commits look like, and how mastering basic Git skills demonstrates professional engineering standards. Whether you're writing release notes, debugging production issues, or working with AI coding assistants, your commit messages are working for you, or against you.
- Published
- 17 December 2025
- Reading time
- 3 min read
- Written by
- Jan Kraus
I just wrapped up a project where some of the Git history looked like a disaster zone. Commits like “pulled develop”, “got rid of x”, “feature X done”. If you’re working alone on a weekend project, fine. But in a professional environment? This is unacceptable.
Your commit history is documentation. It’s communication. It’s part of the work you’re being paid to do.
This Isn’t Rocket Science
Good commits follow a simple pattern: a short, descriptive title that tells me what changed and why. That’s it. But you’d be surprised how many developers treat this like optional homework.
Here’s the thing: when you write “fixed bug” or “updates”, you’re creating technical debt. Six months from now, when something breaks in production, someone (probably you) will be digging through that history trying to understand what happened. Those lazy commits? They’re actively making that person’s job harder.
What Good Looks Like
Follow your team’s conventions first. If they use Conventional Commits, use Conventional Commits. If they have a different standard, use that. Consistency matters more than your personal preference.
Keep titles under 50-70 characters. Use the imperative mood: “Add user authentication” not “Added user authentication”. Think about the change you’re making before you commit it. Is this actually one logical change, or should it be two commits? Break it up if needed.
The goal is simple: anyone reading your history should understand what you did and why, without having to read the code.
Pull Requests Are Communication Too
You spent three hours on those changes. You can spend five minutes writing a proper description. What problem does this solve? What approach did you take? Are there any gotchas reviewers should know about?
This isn’t busywork. This is respecting your teammates’ time. When you write “fixes issue” and merge, you’re forcing them to reconstruct your entire thought process from the code alone. That’s selfish.
The Practical Benefits
Good commit history matters for concrete, practical reasons:
Release notes write themselves. When your commits explain what changed, generating release notes becomes trivial. You can literally parse your history and publish it.
Debugging gets easier. When something breaks, git log and git bisect become powerful debugging tools. But only if your commits actually describe what changed.
LLMs can read your history. If you’re using AI coding assistants, your commit history is context they can use. Clear commits help them understand your codebase better. Garbage commits create garbage context.
Your work speaks for itself. A clean Git history demonstrates professionalism. It shows you think beyond just making the code work; you think about the people who come after you.
Learn Your Tools
Master these Git commands: git commit --amend, git rebase -i, git commit --fixup. They’re basic professional skills, like knowing keyboard shortcuts in your editor.
Rewriting history before you push is fine - even encouraged. Rewriting after you push to a shared branch? That’s when you need to be careful. But don’t let fear of the tool stop you from learning it.
If you’ve been avoiding rebase because it seems scary, spend 30 minutes learning it properly. It’s not complicated. You’re a software engineer. You can figure this out.
The Bottom Line
Good commit hygiene is basic work ethics. It’s not optional, it’s not subjective, and it’s not about being pedantic. It’s about doing your job properly.
Every time you write a lazy commit message, you’re making a choice: save yourself 30 seconds now, waste someone else’s 30 minutes later. That’s a bad trade.
Your commit history is permanent. It’s searchable. It’s documentation. It represents your work to the rest of your company, to future teammates, to future you.
Don’t slack on this. It’s one of the easiest ways to demonstrate that you’re a professional who cares about their craft.
Continue reading
From the journal.
01 / Opinions
You Still Need Software Engineers
AI coding tools are the best thing to happen to software in a decade. They're also the fastest way to flood your codebase with garbage you'll pay to clean up later. The job of a software engineer hasn't disappeared, it's shifted from typing code to exercising judgment about what code should exist. Here's why engineers still matter, what the job actually looks like now, and why "nobody at the wheel" is how clean repos become expensive swamps.
02 / Opinions
Software Ate the World. Now AI Is Eating Software.
Marc Andreessen was right about software eating the world. What he didn't predict was the thing that ate the world getting eaten itself. Building software used to be so expensive that renting from vendors was the only sane option. That's no longer true, and the buy vs. build conversation is changing fast.
03 / Opinions
Stop Waiting. Start Stacking Your Pull Requests.
Waiting for PR reviews is one of the most common productivity killers on engineering teams. Instead of sitting idle, stack your pull requests by branching off your current feature branch and pointing follow-up PRs at the parent branch. Both GitHub and Bitbucket handle retargeting automatically when the first PR merges.
From an idea to the real thing
Have something worth shipping?
Bring me the knotty problem or the stalled platform. I will give you a candid view of the clearest route forward.