Overviewgit rebase reapplies commits on top of another base tip, removing the original commits. For more details on how rebasing works, and some concrete examples, see:
git rebase --onto <newbase>
Starting point at which to create the new commits. If the --onto option is not specified, the starting point is <upstream> (what does that mean?). It may be any valid commit, not just an existing branch name.
The option that allows specifying the ancestor commit after which all commits will be rebased. Normally, this is implicitly calculated by git with:
git merge-base --fork-point <upstream> <branch>
command. If fork-point ends up being empty as result of this command, <upstream> will be used as fallback.
To include a specific number of commits, going back from HEAD, use
rebase -i HEAD~10
To include all the commits from HEAD to, but excluding a specific commit, use:
rebase -i <commit-sha-of-the-first-commit-NOT-to-be-included>