DEV Community

Cover image for Writing clear, concise, and meaningful commit messages for a well-documented Git history
Eddie Gulay
Eddie Gulay

Posted on • Edited on

1 1 1 1 1

Writing clear, concise, and meaningful commit messages for a well-documented Git history

Let’s Talk About Writing Commit Messages That Actually Make Sense

Commit messages might seem like a small thing when you’re knee-deep in code, but they’re like little breadcrumbs you leave for yourself and your team. A good one can save you from scratching your head weeks later, wondering what on earth you were doing. So, how do you write one that’s clear and helpful without feeling like a chore? It’s simpler than you might think.

Start with a type—a quick label that says what kind of change you’re making. Then add a short summary, and if it’s a bigger change, toss in a few extra details. That’s it! Let’s break it down a bit.


Kick Things Off with a Commit Type

Think of the commit type as a way to sort your changes into buckets. Here’s a quick rundown of the common ones:

Type What It Means Example
feat Adding something new feat: add date filtering for GitHub activity
fix Squashing a bug fix: handle API failure when GitHub is down
refactor Tidying up code without changing what it does refactor: optimize API response formatting
docs Updating documentation docs: update README with API usage guide
chore Little maintenance tasks chore: add .gitignore and remove logs
style Just making things look prettier style: format code with Black
test Adding or tweaking tests test: add unit tests for date filtering

These labels make it easy to skim your commit history and know what’s what. No need for anything fancy—just pick one and go.


Keep Your Summary Short and Sweet

Next up is the summary. Keep it quick—aim for under 50 characters if you can, but definitely cap it at 72. Write it like you’re giving a command: “Add this” or “Fix that.” It’s a quirky little standard in coding, but it works. For example:

  • feat: add API endpoint for fetching GitHub activity
  • fix: resolve bug in date filtering logic
  • docs: update README with setup instructions

Avoid stuff like “Added a thing” or “Fixing bugs”—it’s too vague or wishy-washy. Be specific, and you’ll thank yourself later.


Add Some Details When It Matters

For bigger changes, a short summary might not cut it. That’s where a detailed description comes in. After your type and summary, leave a blank line, then add a few lines about what you did and why. Here’s one I’d write:

feat: add GitHub activity API

- Fetches user events from GitHub API
- Supports filtering by single date or date range
- Caches results for faster responses

Closes #12
Enter fullscreen mode Exit fullscreen mode

I remember when I first started coding, I’d skip this part entirely. My commit messages were just “updated code” or something equally useless. Weeks later, I’d be lost. Now, I love adding these little notes—especially for tricky fixes or big features. It’s like leaving a cheat sheet for my future self.


Tie It to Issues or Shout Out Your Team

If your commit ties back to an issue or pull request, mention it. Something like Closes #22 or Related to #15 keeps everything connected. And if you’re working with others, give them a nod with:

feat: add webhook support for GitHub activity

Co-authored-by: Edgar Gulay <edgargulay@outlook.com>
Co-authored-by: John Doe <johndoe@example.com>
Enter fullscreen mode Exit fullscreen mode

It’s a nice way to share the credit.


Keep Your History Tidy

We’ve all been guilty of sloppy commits at some point. You know the ones: wip: working on it or fix: bug fixes. What were you working on? Which bug? Let’s avoid that, shall we? Instead, try:

fix: correct timestamp format in API response
Enter fullscreen mode Exit fullscreen mode

It’s specific, it’s clear, and it won’t leave anyone guessing. Your commit history should tell a story, not a mystery.


A Little Bonus Trick

If you’re into automating things, you can set up a Git hook to nudge you into writing good commit messages. Here’s a quick way to do it:

echo 'exec < /dev/tty && git cz --hook || true' > .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg
Enter fullscreen mode Exit fullscreen mode

It’s like having a friendly reminder pop up every time you commit. Not required, but it’s a neat little helper.


Wrapping It Up

So, there you go! Commit messages don’t have to be a drag. Use a type, keep your summary short and punchy, add details when you need to, and avoid the vague stuff. They’re like little notes to your future self and your team—make them count. Happy coding!


Top comments (1)

Collapse
 
eddieaero profile image
Edson Kuzengwa

this is one big thing now i know ;))