this post was submitted on 16 Jul 2025
727 points (99.3% liked)

Programmer Humor

25425 readers
983 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
all 41 comments
sorted by: hot top controversial new old
[–] eager_eagle@lemmy.world 48 points 2 weeks ago (1 children)

If you write commit messages like this, at least have the decency of squashing them when merging. Thanks.

[–] callouscomic@lemmy.zip 16 points 2 weeks ago

A PR for every tiny commit. You got it.

[–] wise_pancake@lemmy.ca 21 points 2 weeks ago

At a former workplace I created a leaderboard or most swears in commit messages lol

[–] Redkey@programming.dev 19 points 2 weeks ago* (last edited 2 weeks ago) (3 children)

At the very least, please state which section you made small changes to, even if you are sure it's not worth mentioning what or why.

[–] InnerScientist@lemmy.world 8 points 2 weeks ago* (last edited 2 weeks ago)

"Small changes to everything"
98 files changed, 7568 insertions(+), 1022 deletions(-)

[–] runeko@programming.dev 6 points 2 weeks ago

"Small changes to a few sections." There. Happy?

[–] merc@sh.itjust.works 2 points 1 week ago

Also, what were you hoping to accomplish? At a minimum, are you fixing a bug? Adding a feature? Cleaning up ugly code? Trying to improve performance? Adding comments to something that wasn't obvious?

Did you change an interface that other people use in a way that might break something? Even if it's fixing a bug, is that a bug that other people might have been relying on?

I think the most problematic changes are the little fixes, because often the CL goes from something that looks like it should work, to something else that also looks like it should work. It's very helpful when the commit message describes how it was broken. Otherwise, if you have to roll back the changes you don't know what might get broken again.

[–] eager_eagle@lemmy.world 16 points 2 weeks ago (1 children)

git commit -m 'a meaningful message'

[–] Matt@lemdro.id 4 points 2 weeks ago

This is where I thought it was going as well.

[–] cannonship@lemmy.world 16 points 2 weeks ago (3 children)

thank god now we've AI to do this

[–] expr@programming.dev 8 points 2 weeks ago
[–] GreenKnight23@lemmy.world -4 points 2 weeks ago (1 children)

this is literally the only thing I think is acceptable for AI to do for developers.

nobody reads commit history anyway and they always go straight to blame to find out who to kick the fuck out of.

[–] sukhmel@programming.dev 1 points 2 weeks ago (1 children)

And the blame has those commit messages. That is beside the fact that most authors may not even work there anymore

[–] GreenKnight23@lemmy.world 5 points 2 weeks ago (1 children)

I don't even waste my time anymore frankly. people just do a git add . and git commit -m "did some stuff".

sorry, I've just worked with a lot of shitbag devs that honestly think of git as a flat filesystem that can't even properly branch or merge.

personally, I still put in clear commits and even do patch level adds. from what I have experienced though, using AI to generate those commit messages based on actual changes would be a godsend compared to the fuckery I've had to deal with.

[–] sukhmel@programming.dev 3 points 2 weeks ago

To this I completely agree, a lot of people don't want to use the tools for the benefit of the future colleagues or even self

[–] limer@lemmy.dbzer0.com 13 points 2 weeks ago (3 children)

“Sometimes the best way to fix a bug is to introduce an unstable new feature that will later have many bug reports. But the code will now work. And was only written after email chain that har management involved.”

“This is a temporary fix only, and the feature flag it’s under should be turned off after pull request 203. Under no circumstances should bug reports 1923 and 2045 use this new feature to fix issues, even if hours of work can be saved using this ”

“I am blameless for any future issues caused by using this new feature. Here be dragons.”

[–] marcos@lemmy.world 5 points 2 weeks ago (1 children)

You should put this at the code, or at the flag documentation. The one place you it can't go at all is in a commit message.

[–] limer@lemmy.dbzer0.com 4 points 2 weeks ago

Have better docs in those places; but for a class A mess, like above, make sure the approvers see this front and center. Make them sign for it

[–] baines@lemmy.cafe 2 points 2 weeks ago

“this is temporary test code that should be removed before delivery to the customer”

this is real

[–] MonkderVierte@lemmy.zip 1 points 2 weeks ago

Nope. That's a temporary solution™.

[–] NocturnalMorning@lemmy.world 9 points 2 weeks ago

I once found a commit message in our commit history that just said, "i hate git..." bcz they hadn't changed anything, and I think it took a new line character and decided that they'd actually changed like 5 lines of code twhen they hadn't.

It was the funniest shit, someone who was a senior lead for like 9 years that had left, and 5 years later I find that...

[–] MonkderVierte@lemmy.zip 8 points 2 weeks ago (1 children)

git commit -m "A spirit trapped within a tree, no mouth to scream or eyes to see. A cage of bark, a prison of wood. A thing of rage where nature stood."

[–] Ferk@programming.dev 5 points 2 weeks ago

git commit -m "$(fortune | cowsay)"

[–] PastelKeystone@lemmy.world 7 points 2 weeks ago (1 children)

Love it.

While folks are thinking about git commit messages I will offer this.

https://cbea.ms/git-commit/

My only criticism of the essay is that the most important bit is listed at number 7.

[–] merc@sh.itjust.works 2 points 1 week ago (1 children)

See also semantic commit messages where you tag every commit with the type of commit: feature, fix, docs, refactor, test, etc.

My only beef with it is that they chose "feat" as a way to shorten the word "feature" when "feat" is already a word that means something different. Not every feature is a feat, and a lot of the biggest feats are actually bug fixes.

[–] PastelKeystone@lemmy.world 1 points 1 week ago (1 children)

I’ve seen semantic commits done with emojis which is cute but also annoying, because they’re not as easy to type or grep for.

Semantic commits can be nice, but they can also invite bikeshedding about what’s a “feature” and what’s a “bug fix”, etc.

Not saying they aren’t nice, and if folks are using them and liking them, keep going. But if you haven’t used them before on a team, then just be aware that’s a thing than can happen.

[–] merc@sh.itjust.works 1 points 1 week ago

I'd rather have bikeshedding over terminology that eventually results in a single word than just have free-form commits where you can never tell what the primary motivation between a commit is.

[–] rumba@lemmy.zip 7 points 2 weeks ago (1 children)

git commit -m "here is everything in this commit $(tar -czv . | base64)"

[–] InnerScientist@lemmy.world 2 points 2 weeks ago

Go for broke
git commit -m "It works on my machine $(tar -ca . -C / | base64)"

[–] hakunawazo@lemmy.world 4 points 2 weeks ago

git commit -m "Boss makes a dollar, I make a dime so I comment meaningful on company time"

Always put a ticket number in the commit message. That can make it much easier later to find out what the context was for some weird solution.

[–] MTK@lemmy.world 2 points 2 weeks ago* (last edited 2 weeks ago)

For complex changes go with "self-explanatory" just to fuck with peoples' confidence

[–] jjjalljs@ttrpg.network 2 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I've worked with a few people who are just incomprehensible. One refuses to write commit messages of any detail. Just "work in progress". Cast him into the pit.

There was another guy that refused to name his tests. His code was like

describe(''. () => {
  it('', () => {
     expect(someFunc()).toEqual(0);
  }
 it('', () => {
    expect(someFunc(1)).toEqual(0);
  }
 it('', () => {
   expect(someFunc("").toEqual(1);
 }
}

He was like, "Test names are like comments and they turn into lies! So I'm not going to do it."

I was like, a. what the fuck. b. do you also not name your files? projects? children?

He was working at a very big company last I heard.

edit: If you're unfamiliar, the convention is to put a human readable description where those empty strings are. This is used in the test output. If one fails, it'll typically tell include the name in the output.

[–] merc@sh.itjust.works 1 points 1 week ago (1 children)

I get the hesitation that things can turn into lies, but that's a sign that you're doing things wrong. That also tends to happen to comments that are far away from the relevant code, like the documentation of a 100 line function. The function can change while the comment is no longer visible on the screen, so it's easy to forget to also fix the comment.

But test strings like that are designed to avoid that problem. They're right there next to your tests for a reason. You should always be right next to them when you're changing the test.

Fundamentally, this is something that has to be addressed with code reviews. If someone can commit their changes to a group repository without anybody else seeing them, you're going to get stuff like this. As soon as you get decent code reviews, you can just reject a change where there are tests without documentation, the same way you can reject a change to a test where the documentation is now out of date.

[–] jjjalljs@ttrpg.network 2 points 1 week ago

Code reviews are important. Unfortunately, no-test-text guy convinced his whole team that he was right, and I wasn't able to block it. I'd scheduled a meeting to try to get the wider org to adopt a more sensible standard, but then there was a mass layoff 🤷

The other guy with the bad messages is at a tiny startup where they've laid off almost everyone, and the other 2 guys don't want to make waves. The CEO is big on "just ship it" (and also "why are there bugs in production? this is unacceptable!!")