Was digging through a project at work today where some guy in 2014 made 100+ commits in a single day and the only one that had a comment said “upgrading to v4.0”.

I simply commit to master with the message “git commit”.

ah so you are the dev from 2014

I call it job security

lohrun
link
fedilink
881Y

git commit -m “minor tweaks”

+3,276 -4,724

Bug fixes. Too many to count.

I had one of those and it was two in the night and I was tired and forgot what I did and committed stuff, I dunno.

But normally I’m a good boy and prefix with the ticked id and write down the change and attempted fix.

korstmos
link
fedilink
111Y

The change written as a command

Until I get frustrated by something and just start committing “yeet”

andrew
link
fedilink
English
8
edit-2
1Y

When I eventually (usually) rebase, declarative statements of what the commit would accomplish if applied.

When I am testing CICD or generally need to push more frequently for whatever reason, it’s humor and angst all the way.

Ffffffuuuuuuuuu

Pls, why

Okay yeah that was important I guess.

(⁠╯⁠°⁠□⁠°⁠)⁠╯⁠︵⁠ ⁠┻⁠━⁠┻

Conventional commits all the way! Even if I don’t use the keywords (feat, fix, etc.) I always write the comment in imperative tense; the message should tell you what happens if you merge it.

Enforced by pre-commit, conventional commits has cleaned up our commit logs and changelog so much.

hallettj
link
fedilink
7
edit-2
1Y

I totally agree.

Right now I’m on a new project with a teammate who likes to rebase PR branches, and merge with merge commits to “record a clean history of development”. It’s not quite compatible with the atomic-change philosophy of conventional commits. I’m thinking about making a case to change style, but I’ve already failed to argue the problem of disruption when rebasing PR branches.

key
link
fedilink
51Y

That’s pretty neat. Is there a forked version that adds ticket number as a mandatory first class citizen? Cause that’d be darn near perfect.

You get two options.

Normally it’s a squashed commit of everything in a feature, with a commit message like:

[JIRA-1234] - Descriptive but Concise Name of Feature

But every now and then it’s multiple commits like:

quick fix
Ugh, fix typo
fuck fuck why doesn’t it work
Oh, I’m stupid

Followed by

fixed formatting

final formatting fix

you gotta be kidding me, fuck you, detekt!

Bro, squash merge

beardedrhino
link
fedilink
31Y

Or if you’re using feature branches, rebase, squash, and force push before opening the MR

Sure, but before squashing you gotta commit

My commits tend to be pretty verbose. Here’s an example log from one of my projects.

I follow the standard imperative style for the commit title, and then I use the body to summarize any important internal changes, reflect on the overall project status (for example, what milestones this commit crosses or what other work it might enable or require), and state what I’m going to work on next. I’m sure some people find it too wordy, but I like having the commit history show lots of details about the overall status.

Edit: I always have a descriptive summary, i.e., never one word commits or similar.

you are a pro and I aspire to be you

fmstrat
link
fedilink
21Y

I’m not sure I do. I wouldn’t want to read all that just to find the item that broke. Might be faster to read the code.

That’s why git log --oneline exists ;)

fmstrat
link
fedilink
11Y

I use alias gl='git log --graph --abbrev-commit --no-decorate --date=format:'\''%Y-%m-%d %H:%M:%S'\'' --format=format:'\''%C(8)%>|(16)%h %C(7)%ad %C(8)%<(16,trunc)%an %C(auto)%d %>|(1)%s'\'' --all' It will change your world.

That is sexy. My only problem is that I tend to run my Git operations in a pretty small tmux pane on the side of my editing pane, so that layout ends up being too wide to fit well. I’ll definitely keep that alias around for when I have a full screen though!

fmstrat
link
fedilink
11Y

Haha yea I have written a number of git and docker aliases over the years that are permanently in my dotfiles. I’m always in screen but perhaps will get into this newfangled tmux.

fmstrat
link
fedilink
11Y

Woa…

@saigot@lemmy.ca
link
fedilink
5
edit-2
1Y

I like my company’s style:

For issues:

<jira ticket> - [program][deliverable] did this to fix that

Problem: symptoms of the problem that future devs can use to figure out its the same problem

Root cause: why this is broken

Solution: how I fixed it, including the scope

Testing: what testing it has it gone through

ah nice. we include the backlog # in our branch name.

majkeli
link
fedilink
51Y

Developer Initials - Jira ticket number which includes the project abbreviation and the ticket number - brief description:

DA - HHGTTG-42 - fix question answer format

If you need details you look in the ticket.

Developer intials seems a tad redundant since the commit is tied to author(s). But I guess it is only 2 extra char

  • “progress on [1], fixed linting [2]”
  • “[1] completed, setup for [2]”
  • “[3] and [4] completed”
  • “fixed formatting”
  • “refactoring [1] and [2]”
  • “fix variable typos”
  • “update logic in [2]”
  • “revert package.json and regenerate package-lock”

All my commits have comments. I generally commit after completing a ‘block’ objective, a describe what that was but in very simple terms mostly in regards to the file/section with the most significant logic changes. I don’t always specify the file if I did tiny typos/linting/annotation across a bunch of them, because the logic is unaffected I know that the differences will be visible in the commit history.

My weakness is that I don’t do it often enough. If I’m working on [2] for several hours, I’ll only commit when I consider it minimally-viable (completed 2), or when moving between machines ([further] progress on 2). And I have a bad habit of not pushing every time I commit, just at the end of the day or when moving between machines (though a messy rebase hopefully made that lesson stick), or if somebody else on the team wants to review an issue I’m having.

Hal_Canary
link
fedilink
11Y

[issue number] short summary

description of main changes, bullet list if there are lots.

description of minor changes.

motivation of this change, if unclear.

[JIRA-123] Quick summary of objective

Justification (if applicable) Bulleted, high-level overview of important bits Any relevant test results done that won’t also be done in CI

platysalty
link
fedilink
71Y

I’ve had commits called fuck

They fluxuate wildly between short and informative messages like “fixed regex validation on property A” and “I fucking hate prettier” when the build pipeline fails because I had a line that was 2 characters too long.

On projects I setup I have prettier run as part of a commit hook. All files will be formatted at all times

I always try to capture the reasoning behind why I am making the change. I wrote about this more here https://lencioni.medium.com/the-secrets-to-great-commit-messages-106fc0a92a25

Create a post

All things programming and coding related. Subcommunity of Technology.


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

  • 1 user online
  • 7 users / day
  • 7 users / week
  • 14 users / month
  • 121 users / 6 months
  • 1 subscriber
  • 296 Posts
  • 2.15K Comments
  • Modlog