this post was submitted on 03 Aug 2025
80 points (98.8% liked)

Programming

21961 readers
103 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

I want clean history, but that really means (a) clean and (b) history.

People can (and probably should) rebase their private trees (their own work). That's a cleanup. But never other peoples code. That's a "destroy history"

So the history part is fairly easy. There's only one major rule, and one minor clarification:

  • You must never EVER destroy other peoples history. You must not rebase commits other people did.

[...]

If you are working with git together with other people, it's worth a read.

you are viewing a single comment's thread
view the rest of the comments
[–] magic_lobster_party@fedia.io 18 points 2 days ago (8 children)

I think this is dependent on context. Linus is working with a very public repository. Private repositories shared with a small team have different conditions.

What works in my smallish team at my company is:

  • Enable squash commits. Each PR should be squashed to a single commit. This makes the master branch linear and simple. This ensures each individual commit on master has been reviewed and is in a working state.
  • You can do whatever shit you want on your own branch. It’s going to be squashed anyway.
  • Don’t base your work on some other team member’s branch, unless agreed upon. That’s their work. You should only depend on the master branch.
  • Never rewrite what has already been committed to the master branch.
[–] wccrawford@discuss.online 4 points 2 days ago

That sounds like pretty much exactly what we did at my last job, and it worked pretty well IMO. The individual commits in a PR didn't ever matter. I don't even think we used them for code review, except if it came up for review a second time after rework. In that case, we were able to just look at the new commit to see if the right changes were made.

And we definitely avoided basing off each other's branches. We had to do it a few times. The only times it went well was when the intent was to merge the child branch into the feature branch. If they were actually separate tickets (and the second relied on the first) it was generally chaotic. But sometimes, it was just necessary.

load more comments (7 replies)