this post was submitted on 30 Apr 2026
485 points (99.4% liked)
Programmer Humor
31225 readers
349 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
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Squashed commits are not atomic, unless the MR is so tiny that it logically fits into one commit. This is often not the case, though. It is frequently the case that the overall task requires modifying multiple different systems, which should themselves be their own commits, with tests for changes added to the same commit that makes the change.
A well-crafted MR should tell a story in its commits, with changes proceeding logically from one another.
It seems to me what you are really arguing against is poorly crafted history, which I fully agree is something to be stamped out.
To address the specific commands you mentioned:
git bisect. It's binary search to find bad commits. If the selected midway point happens to be a formatting commit (which I'd argue should really be handled by pre-commit hooks anyway) and that commit is broken, it just means that the search proceeds to the midway point between that commit and the known good commit.git blamewon't show the rename commit if it's a separate commit from any changes (which it absolutely should be, due to how git handles renames). And finally, if you care about getting more detail about why the code is the way it is,git blameisn't even the right tool for the job anyway,git log -Lis.