this post was submitted on 01 Mar 2024
19 points (100.0% liked)
Git
2874 readers
15 users here now
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Resources
Rules
- Follow programming.dev rules
- Be excellent to each other, no hostility towards users for any reason
- No spam of tools/companies/advertisements. It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.
Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Clean git histories are fun for the people who care, but they are also mostly useless.
I've been around a lot of arguments about the commit standards in teams and it's always boiled down to the "I don't care, but I don't want to spend time doing anything special" people vs the "do the things the way I like because I can think of three reasons it's technically superior but not practically useful to do so" people.
Bikeshedding at its finest
A great gain from a systematic approach of creating clean history is a better understanding and higher discoverability of issues.
Looking into change history is rare. But designing your changes, being deliberate, structured allows for easier and safer reviews and merges. And spotting issues early is always cheaper and better.
It also helps tremendously in determining what changed between versions. And when necessary finding and reverting regressions.
Cleaning up your history before making a PR can make it easier to review so I always try to do that, but it's not something that should be over done because it can quickly eat up more time than its worth if you go overboard
Doesn't squashing on merge achieve exactly the same thing? (As long as pull requests are kept small, of course.)
To a degree, if pull requests are small enough, then yes.
Often, a changeset includes different aspects and concerns though, and individual commit messages allow you to document and reason them. Squashing makes you lose the concern separation.
When reviewing, even relatively simple changes separated into their concerns helps me a lot.
It's a matter of preference and necessity, and the changeset and it's environment at hand.
Not squashing before review, squashing on merge (i.e. after review). Squashed merges make these easy, regardless of whether the original commits in the pull request were messy:
Yes, this is the
Camp I was talking about. You've your reasons, you'll bikeshed about it for months and no one gets anywhere and no one is happy aside from the people that enjoy the arguments