this post was submitted on 14 Aug 2023
470 points (97.4% liked)
Programmer Humor
19623 readers
96 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 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Always merge when you're not sure. Rebasing rewrites your commit history, and merging with the squash flag discards history. In either case, you will not have a real log of what happened during development.
Why do you want that? Because it allows you to go back in time and search. For example, you could be looking for the exact commit that created a specific issue using git bisect. Rebasing all the commits in a feature branch makes it impossible to be sure they will even work, since they represent snapshots that never existed.
I'll never understand why people suggest you should default to rebasing. When prompted about why, it's usually some story about how it went wrong and it was just easier to do it the wrong way.
I'm not saying never squash or rebase. It depends on the situation but if you had to pick a default, it should be to simply merge.