For example,
- Force SSL flag when connecting to server
- Use new syntax for SSL flag
- Wrap flag implementation to its own method
- Add forgotten tests
This branch's main goal was to use ssl flag on external requests but ended up having several commits that does not really matter to other developers. Then you want to squash this branch into a commit and merge.
Rebase and merge example,
- Improve sorting by adding cache
- Implement a separate config class to fetch caching times.
- Modify search implementation to use cache config class
These are rather important commits by themselves and better keep them separated in your history.
Which you could already do with a regular merge. Just because the commits are fine as part of a branch doesn't mean you want to keep them as part of mainline.
Can you elaborate on this? I would be happy to learn more about it.
What masklinn means is that when you just merge a PR, the history is retained as-is (same as with rebase). But instead of the history being flat, it's bumpy.
I'm not missing any point, I'm saying you already get that benefit with the original merge strategy.
A rebase rewrites history, as if the PR had been written on master directly. There is no merge commit and no evidence of a previous branch. Some people prefer rebasing over merging because it gives you a linear commit history.
`git-rebase` will rewrite the history of the current branch. In this case, github will rewrite the history of the branch that you would like to merge such that the base commit (hence the name "rebase") or the commit that was branched off of is the latest commit on the default branch (usually master)
Then when you merge it, you'll get a merge commit or not depending on whether or not you do a fast-forward merge